24小时热门版块排行榜    

CyRhmU.jpeg
查看: 5650  |  回复: 6

xiaoxiao2793

银虫 (小有名气)

[求助] 怎样将for循环的结果存入数组

求大侠帮助
我matlab中的for循环的结果怎么才能存储到数组中,我是超级初学者,请大侠帮忙啊。。。。。。
for t=10000:500:35000,
n=(77120000000000000000000.0*t^(9/2)*exp(458000.0/t) - 109500000000000000000000000000.0*t^2*exp(503050.0/t))^(1/3)*(0.5 - 0.86602540378443864676372317075294*i)
end
我怎样才能将n的结果存放在数组中???
请大家帮忙啊,谢谢。。。。。。。。。。。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
xiegangmai(金币+1): 谢谢应助! 2011-12-16 21:24:41
xiaoxiao2793(金币+5): 谢谢你,我用了你的方法做出来了。。。 2011-12-19 09:14:11
A=[];
for t=10000:500:35000,
n=(77120000000000000000000.0*t^(9/2)*exp(458000.0/t) - 109500000000000000000000000000.0*t^2*exp(503050.0/t))^(1/3)*(0.5 - 0.86602540378443864676372317075294*i);
A=[A n];
end
2楼2011-12-16 18:26:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyuewu08

木虫 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xiegangmai(金币+2): 谢谢应助! 2011-12-16 21:25:17
这种情况下,可以直接使用数组运算,也就是在运算符前面加上.,这比循环的速度要快,且结果直接存放在数组里。注意,要把表达式写成一行或用...进行分行。
CODE:
t = 10000 : 500 : 35000;
n = zeros(1, length(t));
n = (77120000000000000000000.0 * t .^(9/2).*exp(458000.0./t) - 109500000000000000000000000000.0 * t .^(2).*exp(503050.0./t)).^(1/3)*
(0.5 - 0.86602540378443864676372317075294i);

往事并不如烟
3楼2011-12-16 21:06:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
臭水沟(金币+3): 谢谢交流~~ 2011-12-17 18:23:00
引用回帖:
2楼: Originally posted by 信彼南山 at 2011-12-16 18:26:44:
A=[];
for t=10000:500:35000,
n=(77120000000000000000000.0*t^(9/2)*exp(458000.0/t) - 109500000000000000000000000000.0*t^2*exp(503050.0/t))^(1/3)*(0.5 - 0.86602540378443864676372317075294*i);
A=[A ...

虽能实现要求,执行效率太低。
比较以下的代码,执行效率差别还是很大的。
CODE:
clear
clc
tic
A=[];
for t=10000:500:35000,
    n=(77120000000000000000000.0*t^(9/2)*exp(458000.0/t) - 109500000000000000000000000000.0*t^2*exp(503050.0/t))^(1/3)*(0.5 - 0.86602540378443864676372317075294*i);
    A = [A n];
end
toc

tic
t = 10000 : 500 : 35000;
A1 = zeros( 1, length( t ) );
for n = 1 : length( t )
    A1( n )=(77120000000000000000000.0*t( n )^(9/2)*exp(458000.0/t( n )) - 109500000000000000000000000000.0*t( n )^2*exp(503050.0/t( n )))^(1/3)*(0.5 - 0.86602540378443864676372317075294*i);
end
toc

tic
t = 10000 : 500 : 35000;
% n = zeros(1, length(t));
n = (77120000000000000000000.0 * t .^(9/2).*exp(458000.0./t) - 109500000000000000000000000000.0 * t .^(2).*exp(503050.0./t)).^(1/3)* (0.5 - 0.86602540378443864676372317075294i);
toc

» 本帖已获得的红花(最新10朵)

明德厚学、求是创新
4楼2011-12-16 21:38:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)


臭水沟(应助指数-1): 非应助贴请不要选择“应助回帖”~ 2011-12-17 18:23:29
xiegangmai(金币+1): 交流嘛,除了解决问题,当然更期望从中学到些东西,有所启发! 2011-12-19 21:32:45
钓鱼的人问,用什么鱼饵钓鱼比较好
你告诉人家,用鱼竿效率太低,用网捞比较好

这个叫所答非所问
我是来抬杠的
5楼2011-12-17 14:09:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaoxiao2793

银虫 (小有名气)

送鲜花一朵
引用回帖:
: Originally posted by xiegangmai at 2011-12-16 21:38:55:
虽能实现要求,执行效率太低。
比较以下的代码,执行效率差别还是很大的。
[code]clear
clc
tic
A=[];
for t=10000:500:35000,
    n=(77120000000000000000000.0*t^(9/2)*exp(458000.0/t) - 10950000000 ...

高明啊。。。谢谢。。。
6楼2011-12-19 09:19:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baby_wolf

新虫 (初入文坛)


xiegangmai(金币+1): 谢谢参与! 2011-12-19 21:23:06
所以说,matlab中,变量预定义,声明矩阵大小是十分必要的。新版本中,向量化编程和for循环的效率差别已经不大,甚至使用for循环会更快。
7楼2011-12-19 18:29:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiaoxiao2793 的主题更新
信息提示
请填处理意见