作者KARO7696 (*~小宇仔~*)
看板MATLAB
标题Re: [问题] fprintf
时间Wed Aug 8 14:11:06 2007
谢谢z大和g大~~刚有人点醒我~复数比大小怪
所以其实顺序调一下就ok了
不要先比
先管复数即可
A=[-1,1,0,2+i];
for i=1:length(A)
if isreal(A(i))==0
fprintf('A(%d)=%s.是复数\n',i,num2str(A(i)));
else if A(i)>0
fprintf('A(%d)=%d.是正数\n',i,A(i));
else if A(i)<0
fprintf('A(%d)=%d.是负数\n',i,A(i));
else if A(i)==0
fprintf('A(%d)=%d.是零\n',i,A(i));
end
end
end
end
end
※ 引述《Gwaewluin (神无月 孝臣)》之铭言:
: ※ 引述《KARO7696 (*~小宇仔~*)》之铭言:
: : 疑还是不行耶~~我的程式如下
: : A=[-1,1,0,2+i];
: : for i=1:length(A)
: : if A(i)>0
: : fprintf('A(%d)=%d.是正数\n',i,A(i));
: : else if A(i)<0
: : fprintf('A(%d)=%d.是负数\n',i,A(i));
: : else if A(i)==0
: : fprintf('A(%d)=%d.是零\n',i,A(i));
: : else
: : a=real(A(i));
: : b=imag(A(i));
: : fprintf('A(%d)=%2.0f+%+2.0di,是虚数\n',i,a,b);
: : end
: : end
: : end
: : end
: 复数不能比大小啦
: 不是程式的问题
: 是比大小那边错了
: 用sign就可以判断整数正负号以及是否为复数了
: 还有你使用到复数的话
: 变数名称不要用到i或j
: for ii = 1 : length( A )
: switch sign( A( ii ) )
: case 0
: fprintf('A(%d)=%2d 是零\n' , ii , A( ii ) )
: case 1
: fprintf('A(%d)=%2d 是正数\n' , ii , A( ii ) )
: case -1
: fprintf('A(%d)=%2d 是负数\n' , ii , A( ii ) )
: otherwise
: fprintf('A(%d)=%2d%+2di 是复数\n' , ii , real(A(ii)) , imag(A(ii)) )
: end
: end
: 另外如果你觉得输出看到1i感觉很情怪的话
: 可以用个小小的判断式判断imag(A(ii))是否等於1
: 是的话只要输出real(A(ii))即可,+i或-i自己打
--
╔════◆══我的无名~^^~http://www.wretch.cc/user/KARO7696══╮
◆██◢◣ ◢███ ◢█◤█ ███★ █ ★ ███ ███ ║
║███◤ ██▋█ ██▋█ ██▋█ ▂▂ █▆▆ █▋█ ▆▆ ║
║███◣ ████ ██◣█ ██▋█ █▋█ ███ █▋█ ║
║██◥█ ██▋█ ██◥ ◣★███ ███ █ ██★ ║
╰════◆═══════════◆════ψFirstdrop ═════◆
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.136.232