matlab中怎么保留一个复数矩阵的一部分,而让其他部分元素变为0

2025-01-01 21:00:12
推荐回答(2个)
回答1:

总体思路:根据要保留元素的条件使用find()命令或者使用for循环对每个元素进行检测,不满足条件的元素赋值为0

参考代码
clc
clear all
close all
%-- 使用find()语句 --%
x = [1+2i 2+3i 3+4i];
ix = find(x~=(2+3i)); % 只保留2+3i,其他元素变成0
x(ix) = 0;
disp('x=');
disp(x);
%--------------------%
%-- 使用for循环语句 --%
x1 = [1+2i -2+3i 3+4i -8-5i];
for i=1:length(x1) % 假设只保留元素实部大于零的
if( real(x1(i))<0 )
x1(i) = 0;
end
end
disp('x1=');
disp(x1);
%--------------------%

输出效果
x=
0.0000 + 0.0000i 2.0000 + 3.0000i 0.0000 + 0.0000i
x1=
1.0000 + 2.0000i 0.0000 + 0.0000i 3.0000 + 4.0000i 0.0000 + 0.0000i

回答2:

A([1:84,116:251],:)=0;
即可
非用循环的话
for i=[1:84,116:251]
for j=1:251
A(i,j)=0;
end
end