Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-08-22
帖子: 5
声望力: 0 ![]() |
![]() ![]() 先谢了! |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-08-25
帖子: 1
声望力: 0 ![]() |
![]()
我编了个程序 针对你给的数据。不知道你的系统多大。大的话用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 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-08-28
年龄: 45
帖子: 14
声望力: 16 ![]() |
![]()
假定已知矩阵为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的第一行表示实数位置;第二行表示相应位置下的实数值%% |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2009-08-22
帖子: 5
声望力: 0 ![]() |
![]()
不好意思,我想问一下,在你的条件语句中对x取值的限定是如何选的,为什么要-1<x<1呢,我的矩阵里面的元素取值都比较小,基本上是在0.01左右,该怎样取这个范围呢?谢谢了!
|
![]() |
![]() |