Re: [問題] fprintf
謝謝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
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章