Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-08-28, 08:49   #1
舒子shu
初级会员
 
注册日期: 2009-08-22
帖子: 5
声望力: 0
舒子shu 正向着好的方向发展
默认 求助:matlab中如何把矩阵中的实数找出来,并确定其相应的位置

例如有此数组A=[2-9i,6+4i,7,5-3i;i,4,5+8i,9],要将其中的实数给找出来,并确定实数的位置,我最后想要用[a,b]的形式表示实数的位置,因为接下来的工作中我要用a,b。
先谢了!
舒子shu 当前离线   回复时引用此帖
旧 2009-08-29, 00:03   #2
duguying2245
初级会员
 
注册日期: 2009-08-25
帖子: 1
声望力: 0
duguying2245 正向着好的方向发展
默认 回复: 求助: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
duguying2245 当前离线   回复时引用此帖
旧 2009-08-29, 03:11   #3
barcelona
初级会员
 
注册日期: 2009-08-28
年龄: 45
帖子: 14
声望力: 16
barcelona 正向着好的方向发展
默认 回复: 求助: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的第一行表示实数位置;第二行表示相应位置下的实数值%%
barcelona 当前离线   回复时引用此帖
旧 2009-08-29, 12:16   #4
舒子shu
初级会员
 
注册日期: 2009-08-22
帖子: 5
声望力: 0
舒子shu 正向着好的方向发展
默认 回复: 求助:matlab中如何把矩阵中的实数找出来,并确定其相应的位置

引用:
作者: duguying2245 查看帖子
我编了个程序 针对你给的数据。不知道你的系统多大。大的话用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
不好意思,我想问一下,在你的条件语句中对x取值的限定是如何选的,为什么要-1<x<1呢,我的矩阵里面的元素取值都比较小,基本上是在0.01左右,该怎样取这个范围呢?谢谢了!
舒子shu 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 02:28


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