MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB基础] 求助:matlab中如何把矩阵中的实数找出来,并确定其相应的位置 (https://www.labfans.com/bbs/showthread.php?t=9539)

舒子shu 2009-08-28 08:49

求助:matlab中如何把矩阵中的实数找出来,并确定其相应的位置
 
:confused:[SIZE="5"][/SIZE]例如有此数组A=[2-9i,6+4i,7,5-3i;i,4,5+8i,9],要将其中的实数给找出来,并确定实数的位置,我最后想要用[a,b]的形式表示实数的位置,因为接下来的工作中我要用a,b。
先谢了!

duguying2245 2009-08-29 00:03

回复: 求助:matlab中如何把矩阵中的实数找出来,并确定其相应的位置
 
我编了个程序 针对你给的数据。不知道你的系统多大。大的话用for循环就不好了。希望对你有用 呵呵。
A=[2-9i,6+4i,7,5-3i;i,4,5+8i,9];
p=0;
for m=1:2
for n=1:4
x=imag(A(m,n));
if (x<1)&(x>-1)
p=p+1;
y(p)=m;z(p)=n;
number=p;

end
end
end

fprintf('\n*** 实数个数 = %2.0f \n',number);

%查看实数
for p=1:number
A(y(p),z(p))
end

barcelona 2009-08-29 03:11

回复: 求助:matlab中如何把矩阵中的实数找出来,并确定其相应的位置
 
假定已知矩阵为a,则矩阵a中实数的位置x=find(imag(a)==0),得到的x的结果不是矩阵标准的行列形式,但是可以直接根据x获得相应位置上的实数数据b=a(x);如果要得到实数在矩阵中的确切行列信息,设已知矩阵为NXM形式,则由x到行列的转换满足以下关系:
列信息 c=x/N(x/N为整数时) or fix(x/N)+1;行信息r=N(x/N为整数) or x-fix(x/N)XN;
m文件程序简单实现:
x=find(imag(a)==0);

for jj=1:length(x)
b(jj)=a(jj);
end

z=[x;b];%%z的第一行表示实数位置;第二行表示相应位置下的实数值%%

舒子shu 2009-08-29 12:16

回复: 求助:matlab中如何把矩阵中的实数找出来,并确定其相应的位置
 
[QUOTE=duguying2245;31236]我编了个程序 针对你给的数据。不知道你的系统多大。大的话用for循环就不好了。希望对你有用 呵呵。
A=[2-9i,6+4i,7,5-3i;i,4,5+8i,9];
p=0;
for m=1:2
for n=1:4
x=imag(A(m,n));
if (x<1)&(x>-1)
p=p+1;
y(p)=m;z(p)=n;
number=p;

end
end
end

fprintf('\n*** 实数个数 = %2.0f \n',number);

%查看实数
for p=1:number
A(y(p),z(p))
end[/QUOTE]
不好意思,我想问一下,在你的条件语句中对x取值的限定是如何选的,为什么要-1<x<1呢,我的矩阵里面的元素取值都比较小,基本上是在0.01左右,该怎样取这个范围呢?谢谢了!


所有时间均为北京时间。现在的时间是 07:03

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.