0
我有單元陣列:如何替換滿足條件的數組的所有元素?
im = {'A+','B-','B+','A+'; 'A-','B-', NaN, 'A+'};
欲循環通過每一行以查看哪些具有的兩個和「A」和'B的等於2。然後,我將替換這些行與NaN的。我的代碼:
for ii = 1: size(im,1)
if (sum(strcmp('A+', im), 2) + sum(strcmp('A-', im), 2)) == 2 & (sum(strcmp('B+', im), 2) + sum(strcmp('B-', im), 2))== 2
im{ii, 1} = NaN;
im{ii, 2} = NaN;
im{ii, 3} = NaN;
im{ii, 4} = NaN;
end
end
當我刪除從im
第二排,我得到的答案:im = {NaN, NaN, NaN, NaN}
。但是,當我包括第二排時,im
保持原樣。請問,我的代碼可能有什麼問題?其次,是否有更好的方法來取代元素?
任何幫助或建議,請?非常感謝。
既然你不告訴MATLAB什麼的情況下,總和辦對於A和B兩者都不是2,它會使其保持不變,就像你正在觀察的那樣。你可以在你的循環中添加一個'elseif'語句來處理這種情況。 –
要修復你的代碼,改變這樣的條件:'if sum(strcmp('A +',im(ii,:)))+ .. ..' –