[討論] 如何簡化程式...
各位好~~~
想請問各位有方法能夠簡化.使程式跑快一點嗎~…
主要是 if elseif…那一段會花比較久的時間QQ
已經想了好久了 還是不知道如何簡化
現在跑一次大概需要5分鐘…而我有十幾萬次orz
拜託各了…謝謝
for yy=1:2:47
in = inpolygon(line_all(:,yy),line_all(:,yy+1),q(:,2),q(:,3));
in2=double(in); %%把邏輯值換成數值
if exist('final_length')~=1
final_length=[];
end
aab=[];aac=[];aad=[];
if sum(in2(1:100,1))==0
aac=[aac;nan,nan,200];
elseif in2(1,1)==1
aad=[aad;line_all(1,yy:yy+1),2];
else
qqqq2=double(diff(in2)==1);
[row,col] = find(qqqq2(:,1)==1);
qqqq3=(row(1,1)+1)
aab=[aab;line_all(qqqq3,yy:yy+1),qqqq3*2];
end
if isempty(aac)==1&&isempty(aad)==1
final_length=[final_length;aab(1,:)];
end
if isempty(aac)~=1
final_length=[final_length;aac(1,:)];
end
if isempty(aad)~=1
final_length=[final_length;aad(1,:)];
end
end
大概就是我要判斷一個100*1的矩陣(稱為a,都是由0,1組成),
如果(1)這一百個值總和為零就給代碼200,(2)如果a(1,1)=1則給代碼2,
(3)若後格減前格=1則給後格的row*2......。
若(1)符合則不做(2)( 3)..
.實在想不出比較快的寫法,所以才用isempty, 請問您有比較快的寫法嗎?謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.155.44.172
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1428247951.A.F61.html
推
04/06 00:07, , 1F
04/06 00:07, 1F
→
04/06 00:09, , 2F
04/06 00:09, 2F
因為in=inpolyhon..出來的會是邏輯值,轉成數值才能計算
大概就是我要判斷一個100*1的矩陣(稱為a,都是由0,1組成),如果(1)這一百個值總
和為零就給代碼200,(2)如果a(1,1)=1則給代碼2,
(3)若後格減前格=1則給後格的row*2......。
若(1)符合則不做(2)( 3)...
實在想不出比較快的寫法,所以才用isempty,
s大請問您有比較快的寫法嗎?謝謝
※ 編輯: iamclaudiaa (182.155.44.172), 04/06/2015 00:45:22
→
04/06 09:50, , 3F
04/06 09:50, 3F
推
04/07 21:26, , 4F
04/07 21:26, 4F
→
04/07 21:26, , 5F
04/07 21:26, 5F
→
04/07 21:26, , 6F
04/07 21:26, 6F
→
04/07 21:27, , 7F
04/07 21:27, 7F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章