24小时热门版块排行榜    

查看: 1957  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

田山东

捐助贵宾 (著名写手)

[求助] matlab矢量写法,这样可以吗?急求啊!!

大家好,在论坛上和网上也学到了一些将for语句写成矢量的写法,但是我的这个里面有if句法,如何来实现呢?我试了下,没有成功
就这样几句话:
ny0=64;
fi=2*pi/16;
t=2.8;
I=1i;
H0=zeros(ny0,ny0);
for j=1:ny0;
        if(mod(jl,2)==1)
        m=(j(l)+1)/2;
        else
        m=j(l)/2;
    end
        Ax=-(m-1)*0.5*fi;  
          if (mod(j,4)==1)
          H0(j,j+1)=t*exp(I*Ax);  
      end
end
我试着这样去做:


ny0=64;
fi=2*pi/16;
t=2.8;
I=1i;
H0=zeros(ny0,ny0);
j=1:ny0;
l=1:1:length(j);
        if(mod(j(l),2)==1)
        m=(j(l)+1)/2;
        else
        m=j(l)/2;
    end
        Ax=-(m-1)*0.5*fi;  
          if (mod(j(l),4)==1)
          H0(j(l),j(l)+1)=t*exp(I*Ax);  
      end
但是很奇怪啊,里面没数据啊。
有没有人可以帮我下啊?
回复此楼
everythinghasitsseason.enjoyyourlife.
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

谁能帮忙解决了,还是用下矢量化方法吧。还是希望比较一下速度。
everythinghasitsseason.enjoyyourlife.
5楼2012-12-05 21:09:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

田山东

捐助贵宾 (著名写手)

给定j,得到m,得到Ax,然后对H0赋值
everythinghasitsseason.enjoyyourlife.
2楼2012-12-05 20:18:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

看了网上的讨论,新版本中向量化跟for循环差距已经不是很大,看来我是多虑了。
同意的顶下,也是对我摸索这么久的一个奖励
看帖不顶是小狗
回帖是一种美德
不一定要答案。

要人气。。
everythinghasitsseason.enjoyyourlife.
3楼2012-12-05 20:28:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

可以花钱买BB 吗?花点钱买点,给大家送点,攒点人气啊。。
everythinghasitsseason.enjoyyourlife.
4楼2012-12-05 20:29:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见