数学建模社区-数学中国

标题: matlab两个问题 [打印本页]

作者: alec26    时间: 2008-2-17 14:22
标题: matlab两个问题

1。哪位朋友帮我看看下面这个用来把实数虚数分开的代码哪里错了。

A=[1 2 2+3i 7 4+5i 2+6i];
r=[];
c=[];
for i=1:length(A),
if isreal(A(i))==1,
r=[r A(i)];
else
c=[c A(i)];
end;
end
u
v

2。请问一下到底==和=分别什么时候用?

[em01]
作者: liwenhui    时间: 2008-2-17 19:56

看看我的代码你就知道你哪里错了:

A=[1 2 2+3i 7 4+5i 2+6i];
r=[];
c=[];
for k=1:length(A);
if isreal(A(1,k))==1;
r=A(1,k)
else
c=A(1,k)
end
end

i在matlab系统里默认是表示虚数单位,不能乱用!

A(m,n)表示矩阵A的第m行n列的元素。

==和=的区别是:==用于表示关系运算,=用来赋值。在判断逻辑关系式时,只能用==,而数值运算中用=


作者: liwenhui    时间: 2008-2-17 20:04

或许你嫌上面的程序太烦,输出不是很好看,那就再试试下面的程序,你就满意了:

A=[1 2 2+3i 7 4+5i 2+6i];
r=[];
c=[];
i2=1;
i3=1;
for k=1:length(A);
if isreal(A(1,k))==1;
r(1,i2)=A(1,k);
i2=i2+1;
else
c(1,i3)=A(1,k);
i3=i3+1;
end
end
r,c


作者: liwenhui    时间: 2008-2-17 22:36

可能你不满足只能判断一个特定的数组里的实数与虚数,那么把附件里的M文件放到你matlab的work文件夹下,那么你就能调用分离数组里实数与虚数的函数了。

调用格式为:sxpd(x)

比如你想要分离数组a=[2,3i,0,1-5i,pi+5i,-100i,0.001,3]里的实数与虚数

那么只需输入如下程序:

a=[2,3i,0,1-5i,pi+5i,-100i,0.001,3];

sxpd(a)

系统自动帮你分离实数虚数,手到擒来!呵呵,enjoy it!

[attach]4011[/attach]
) M/ O5 u4 |8 o7 x6 r- \ O3 J0 I
[此贴子已经被作者于2008-2-17 22:37:05编辑过]

sxpd.rar.rar

262 Bytes, 下载次数: 9, 下载积分: 体力 -2 点

sxpd.rar


作者: alec26    时间: 2008-2-19 18:19
多谢版主!以后多多指教啊~
作者: lzh0601    时间: 2008-4-19 23:23

那个sxpd可以处理不是一维的情况么?


作者: njzqxt    时间: 2009-1-15 17:02
原来是这样.
作者: njzqxt    时间: 2009-1-15 17:07
原来是这样.
作者: liwenhui    时间: 2009-1-24 23:09
6# lzh0601 可以的,这是我自己编写的函数,可以分离矩阵




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5