for循环,复数矩阵,MATLAB
答案:2 悬赏:40
解决时间 2021-02-16 13:56
- 提问者网友:暖心后
- 2021-02-16 04:02
用MATLAB将一个复数矩阵,我想把它按象限重新分成4个新的复数矩阵。如s=[3+3j,1+3j,-1+3j,-3+3j,3+1j,1+1j,-1+1j,-3+1j,3-1j,1-1j,-1-1j,-3-1j,3-3j,1-3j,-1-3j,-3-3j];结果运行后为
s1=[3+3j,1+3j,3+1j,1+1j];s2=[-1+3j,-3+3j,-1+1j-3+1j,];s3=[-1-1j,-3-1j,-1-3j,-3-3j];s4=[3-1j,1-1j,3-3j,1-3j]
我自己写的一段代码是这样的:
s=[3+3j,1+3j,-1+3j,-3+3j,3+1j,1+1j,-1+1j,-3+1j,3-1j,1-1j,-1-1j,-3-1j,3-3j,1-3j,-1-3j,-3-3j];
i_s=real(s);
q_s=imag(s);
x0=mean(i_s);
y0=mean(q_s);
for ii=1:1:16
if real(s(ii))>=x0&&imag(s(ii))>=y0
s1=s(ii);
elseif real(s(ii))=y0
s2=s(ii);
elseif real(s(ii)) s3=s(ii);
elseif real(s(ii))>=x0&&imag(s(ii)) s4=s(ii);
end
end
运行结果确是:s1=[1 + 1i];s2=[-3+1i];s3=[-3-3i];s4=[1-3i],不知道错在哪里,有哪位好心人能帮忙看看错在哪里
最佳答案
- 二级知识专家网友:萌萌哒小可爱
- 2021-02-16 04:44
把for循环改成:
s1 = s( i_s >= x0 & q_s >= y0);
s2 = s( i_s < x0 & q_s >= y0);
s3 = s( i_s < x0 & q_s < y0);
s4 = s( i_s >= x0 & q_s < y0);
全部回答
- 1楼网友:一池湖水
- 2021-02-16 06:19
imshow函数用来把图片的矩阵数据显示成图片。
如果用imshow(a),而且a是复数矩阵,则按照a的实部处理。
用imshow(abs(a)),则是按a的模处理。
我要举报
大家都在看
推荐资讯