- 主题:请问这个matlab程序为什么越来越慢?
你不能不要循环直接矩阵计算吗?
【 在 novicer 的大作中提到: 】
: u2 = exp(i.*zeros(8192,8192));
:
: for ite1 = 1:8192
: for ite2 = 1:8192
: u = exp(i.*......);
: u2 = u2.*u;
: end
: end
:
: 这个程序越来越
: ..................
发自「今日水木 on iPhone SE 2」
--
FROM 223.72.74.*
你自己试试,我也没法替代你算。
u2=ones(8192, 8192);
这个就行
【 在 novicer 的大作中提到: 】
: for循环能去掉吗?貌似去不掉啊
:
: u2 = exp(i.*zeros(8192,8192));
: ...................
--
FROM 223.72.74.*
你把那个xy_2d扩展成一样大的矩阵应该就可以了
【 在 novicer 的大作中提到: 】
: for循环能去掉吗?貌似去不掉啊
:
: u2 = exp(i.*zeros(8192,8192));
: ...................
--
FROM 223.72.74.*
这玩意应该很好去掉的吧。。。
【 在 novicer 的大作中提到: 】
: 我已经不奢望去掉两个for循环了,只要程序不运行的越来越慢就可以,我不明白为什么这个程序运行越来越慢
:
--
FROM 223.72.74.*
你私我吧,告诉我意图,我不懂为啥要用一个大矩阵减一个小的
【 在 novicer 的大作中提到: 】
: 我已经不奢望去掉两个for循环了,只要程序不运行的越来越慢就可以,我不明白为什么这个程序运行越来越慢
:
--
FROM 223.72.74.*
看了下好像是这样的,给你做了个小实验
x=zeros(7,7)
y=randn(3,4)
for i=1:3
for j=1:4
x-y(i,j)
end
end
这是类似你的问题
newy=reshape(y,1,12);
for i=1:12
temp=repmat(newy(i),7,7);
x-temp
end
这是精简后的
你看看能不能省点时间
【 在 novicer 的大作中提到: 】
: 我觉得for循环去不掉,你能去掉的话,我给你2万积分,给知天命版5000积分
: 有人告诉我把这个二维循环变成一维的,但这样还是要循环800×900次
:
: ...................
--
修改:soncyme FROM 223.72.74.*
FROM 223.72.74.*