看板 MATLAB 關於我們 聯絡資訊
有一複數向量B,想按照向量C的大小做排列,但是排列完輸出要以B的值,其中A、B、C 如下: B =[1;3;2i;1i;1+2i;1-2i]; C=zeros(length(B),1); for ii=1:length(B) if imag(B(ii))~=0 && real(B(ii))==0 C(ii)=-imag(B(ii)); elseif imag(B(ii))>0 && real(B(ii))~=0 C(ii)=-abs(B(ii)); elseif imag(B(ii))<0 && real(B(ii))~=0 C(ii)=-abs(B(ii))-1e-10; else C(ii)=B(ii); end end 也就是說,純虛數當成取出虛部後(去掉i)加上負號,純實數不變,複數則會成對出現, 故複數的虛部大於0時,取絕對值加上負號,複數的虛部小於0時,取絕對值加上負號減掉 1e-10,其向量會如下: B=[1;3;2i;1i;1+2i;1-2i]; C=[1;3;-2;-1;-2.236;-2.236]; 而把C排列後: C=[-2.236;-2.236;-2;-1;1;3] 最後我想要輸出的是: B=[1-2i;1+2i;2i;1i;1;3] 也就把B按照C的值的大小做排列後,輸出B的值 請問Matlab有辦法做到這樣嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.17.253