alec26 发表于 2008-2-17 14:22

matlab两个问题

<p>1。哪位朋友帮我看看下面这个用来把实数虚数分开的代码哪里错了。</p><p>A=;<br/>r=[];<br/>c=[];<br/>for i=1:length(A),<br/>    if isreal(A(i))==1,<br/>        r=;<br/>    else<br/>        c=;<br/>    end;<br/>end<br/>u<br/>v</p><p>2。请问一下到底==和=分别什么时候用?</p>

liwenhui 发表于 2008-2-17 19:56

<p>看看我的代码你就知道你哪里错了:</p><p>A=;<br/>r=[];<br/>c=[];<br/>for k=1:length(A);<br/>    if isreal(A(1,k))==1;<br/>       r=A(1,k)<br/>    else<br/>       c=A(1,k)<br/>    end<br/>end</p><p>i在matlab系统里默认是表示虚数单位,不能乱用!</p><p>A(m,n)表示矩阵A的第m行n列的元素。</p><p>==和=的区别是:==用于表示关系运算,=用来赋值。在判断逻辑关系式时,只能用==,而数值运算中用=</p>

liwenhui 发表于 2008-2-17 20:04

<p>或许你嫌上面的程序太烦,输出不是很好看,那就再试试下面的程序,你就满意了:</p><p>A=;<br/>r=[];<br/>c=[];<br/>i2=1;<br/>i3=1;<br/>for k=1:length(A);<br/>    if isreal(A(1,k))==1;<br/>        r(1,i2)=A(1,k);<br/>        i2=i2+1;      <br/>    else<br/>       c(1,i3)=A(1,k);<br/>       i3=i3+1;<br/>    end<br/>end<br/>r,c</p>

liwenhui 发表于 2008-2-17 22:36

<p>可能你不满足只能判断一个特定的数组里的实数与虚数,那么把附件里的M文件放到你matlab的work文件夹下,那么你就能调用分离数组里实数与虚数的函数了。</p><p>调用格式为:sxpd(x)</p><p>比如你想要分离数组a=里的实数与虚数</p><p>那么只需输入如下程序:</p><p>a=;</p><p>sxpd(a)</p><p></p><p>系统自动帮你分离实数虚数,手到擒来!呵呵,enjoy it!</p><br/>
[此贴子已经被作者于2008-2-17 22:37:05编辑过]

alec26 发表于 2008-2-19 18:19

多谢版主!以后多多指教啊~

lzh0601 发表于 2008-4-19 23:23

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

njzqxt 发表于 2009-1-15 17:02

原来是这样.

njzqxt 发表于 2009-1-15 17:07

原来是这样.

liwenhui 发表于 2009-1-24 23:09

6# lzh0601 可以的,这是我自己编写的函数,可以分离矩阵
页: [1]
查看完整版本: matlab两个问题