声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1163|回复: 6

[编程技巧] 嵌套循环变量长度不一致怎么办呢?

[复制链接]
发表于 2008-10-10 10:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
各位高手,初学者请教:
a=1;c=a;b=2.7;x=1480;z=x;y=6262;l=0.02;for f=0:5000000:25000000 for t=0:0.01:pi/2
X=(1-a.*sqrt(x^2-z^2*(sin(t)).^2)./c./z./(cos(t))).^2.*(1+cos(4*pi*f*l/y))./2

两个变量f 和t 长度不一致,结果X运行出来不是数组,怎么修改呢?
恳请赐教,在线等....
回复
分享到:

使用道具 举报

发表于 2008-10-10 14:09 | 显示全部楼层

回复 楼主 kira23 的帖子

你这个是matlab吗?
2重循环?
 楼主| 发表于 2008-10-10 16:44 | 显示全部楼层
是啊,是双重循环,就是公式复杂了点
呵呵
发表于 2008-10-10 16:59 | 显示全部楼层

回复 板凳 kira23 的帖子

双重循环,每次都覆盖了前一次的结果
不过没有end,运行不了吧
 楼主| 发表于 2008-10-10 17:07 | 显示全部楼层
我没有在这里写end。怎么才能不覆盖呢?
有没有办法先创建个数组X呢?
发表于 2008-10-10 18:41 | 显示全部楼层

回复 楼主 kira23 的帖子

a=1;c=a;b=2.7;x=1480;z=x;y=6262;l=0.02

f=linspace(0,25000000,6)
for n=1:length(f)
t=linspace(0,pi,158)
for m=1:length(t)
X(n,m)=(1-a.*sqrt(x^2-z^2*(sin(t(m))).^2)./c./z./(cos(t(m)))).^2.*(1+cos(4*pi.*f(n).*l/y))./2
end
end

[ 本帖最后由 qingqing5638 于 2008-10-10 18:48 编辑 ]
发表于 2008-10-10 18:50 | 显示全部楼层
控制流极其重要,因为它使过去的计算影响将来的运算。MATLAB提供三种决策或控制流结构。它们是:For循环,While循环和If-Else-End结构。由于这些结构经常包含大量的MATLAB命令,故经常出现在M文件中,而不是直接加在MATLAB提示符下。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 03:28 , Processed in 0.062784 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表