我有一個矩陣,我用它來解決使用ode45方程的系統。我在while循環中迭代刪除一行。但是,我希望第一次迭代「繼續」而不是刪除任何箭頭,以便我可以將刪除一個數組的所有結果與使用初始矩陣的結果進行比較。Matlab迭代刪除一行矩陣,除了第一次迭代
它看起來像:
while smtg
A(pos,:)=0 % Do not compute this line the first iteration
pop=ode45(involving A)
end
我真正的代碼:
countrow=0;
A=randi([0 1], 5, 5);
distrib=sum(A,1);
while sum(distrib)>5
countrow=countrow+1;
A(pos,:)=0; % remove one row
options = odeset('RelTol', 1e-4);
[t, pop]=ode45(@Diff,[0 MaxTime],[E I],options,n,m, A);
nbtot =sum(pop(:,n+1:2*n),2);
end
我試圖用
if countrow==1 % (the first iteration),
continue;
end
但會跳過,直到第二端,而不是nbtot計算等等我沒有想法...有什麼幫助嗎?
我不是你想達到什麼完全清楚,所以只是一個供參考:實際上你可以從矩陣刪除行(從而降低其大小)通過使用'A(pos,:)= [];'。這顯然不會解決您的問題,但它可能會獨立於您的問題。 –
不,我希望我的矩陣的大小保持不變,因爲之後繪製矩陣,這就是爲什麼我使用A(pos:,)= 0;但我承認,在任何其他情況下,這是做到這一點的方法! – user3767071