matlab 如何在文件读取复数

如果test.txt文件有11+i1对于1,我能用%d读取1+i1,我用什么类型读取... 如果test.txt 文件有 1 1+i1
对于1,我能用%d读取
1+i1,我用什么类型读取
展开
 我来答
百度网友164242d
2014-04-02
知道答主
回答量:7
采纳率:0%
帮助的人:16.1万
展开全部
貌似不能直接读取,只能按照string读入进来再分析
把我以前的代码改了改 不知能不能符合你的要求,具体得看你txt中复数的格式
比如,txt文件是一个复数占一行的
1+i3.55
4+i9
-5.5-i6.1
----------------------------------------------
matlab代码:

clear all;
clc;
fin=fopen('test.txt','r');
result={};
while feof(fin)==0
str=fgetl(fin);
str=strread(str,'%s','delimiter',' \n');
result=[result;str];
end
disp(result);
fclose(fin);
len=size(result,1);
val=[];
for m=1:len
curstr=result(m,1);
curstr=curstr{1};
%find the operand
curstrlen=size(curstr,2);
curval=0;
for k=curstrlen:-1:1
if (curstr(k)=='+')
inum=str2num(curstr(k+2:curstrlen));
rnum=str2num(curstr(1:k-1));
curval=rnum+i*inum;
break;
elseif (curstr(k)=='-')
inum=str2num(curstr(k+2:curstrlen));
rnum=str2num(curstr(1:k-1));
curval=rnum-i*inum;
break;
else
continue;
end
end
val=[val;curval];
end

这只是一般情况,还有一些麻烦的情况没有处理,比如只有实部或只有虚部的时候,再加一个判断就行了
祝lz好运
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式