24小时热门版块排行榜    

查看: 590  |  回复: 4

z770428

金虫 (正式写手)


[求助] MATLAB

g1(theta)= sqrt(cos(theta).^2+sin(theta).^2/P1^2);

error:the variable " g1" appears to change size on every loop iteration ,consider preallocating for speed
什么意思,怎么修改?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

emspire529

铜虫 (小有名气)

先把g1预定义 这样可以加速
2楼2012-06-22 00:29:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duotojh

金虫 (小有名气)

是说变量g1的维度在每一次循环都在发生变化,使得Matlab每轮循环都要为其重新分配内存,
所以会严重影响程序效率
因此,它建议你预先为g1分配一个足够容量的内存空间,这样每轮循环的时候就不必再分配内存,
可以加快程序的运行
3楼2012-06-22 00:36:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kaiko2010

新虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
贺仪: 金币+1, 谢谢交流 2012-06-26 17:25:04
先给g1定义,g1=zeros(size(theta,1),size(theta,2))
g1(theta)= sqrt(cos(theta).^2+sin(theta).^2/P1^2);
试试看
4楼2012-06-22 10:17:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

z770428

金虫 (正式写手)


引用回帖:
4楼: Originally posted by kaiko2010 at 2012-06-22 10:17:55
先给g1定义,g1=zeros(size(theta,1),size(theta,2))
g1(theta)= sqrt(cos(theta).^2+sin(theta).^2/P1^2);
试试看

好的。感谢你们
5楼2012-06-25 07:22:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 z770428 的主题更新
信息提示
请填处理意见