在matlab中嵌套For循环太慢,我想减少用于后续过程的时间,任何帮助改善情况都应该受到高度赞赏。
R =0;
C =0;
Ch=0;
MyImage = imread('Test1.TIF');
[R, C, Ch] = size(MyImage);
L1 = 2.3;
L2 = 14.1;
Q1 = 1;
Q2 = 255;
K1 = 200;
K2 = 1000;
E = 1.1;
RCPV = zeros(R, C);
V = zeros(R, C);
T = zeros(R, C);
for C = 1:C
for R = 1:R
PV(R,C) = impixel(MyImage,C,R);
PV(R,C) = mean(PV(:));
%PV(R,C) = PV;
V(R,C) = ((L2-L1)/(Q2-Q1))* (PV(R,C)-Q1) + L1;
T(R,C)= (K2/log(((K1*E)/V(R,C))+1))-273;
end
end
xlswrite('testdata.xlsx',T);
答案 0 :(得分:0)
为什么不尝试parfor
而不是for
。对于像7000x8000这样的迭代次数会更好。
可能就像
parfor loopvar = initval:endval
statements;
end
你可以让内循环,即J
以并行方式运行。尝试不同的方式:)