0
我想找出一種方法來做一個for循環,在這個循環中我可以比較兩個單元格,這會給我兩種不同的方法。一個用於char類,另一個用於class double。如何僅循環訪問單元格數組的某些部分?
這是我到目前爲止。
V = {2; 'tree'; 3; 'hope'};
W = {2; 'tree'; 3; 'hope'};
for i = 1:length(V);
if isequal(class(V{i}), 'double')
num = V{i}
elseif isequal(class(V{i}), 'char')
str = V{i}
end
end
for i = 1:length(W);
if isequal(class(W{i}), 'double')
acc_n(i) = isequal(V{i}, W{i})
elseif isequal(class(W{i}), 'char')
acc_s(i) = strcmp(V{i}, W{i})
end
end
mean_d = mean(acc_n)
mean_s = mean(acc_s)
我得到的輸出是:
acc_n =
1 0 1
acc_s =
0 1 0 1
mean_d =
0.6667
mean_s =
0.5000
我想輸出是:
1 1
字符串,mean = 1
。 1 1
爲雙倍,mean = 1
我該如何做一個循環,它只需要單獨的單元格的數字和單元格的單詞?
是否有任何可能的方式來循環單詞或數字?
是否有另一種方法來做到這一點,而不使用cellfun? – user2924450
另外,如何使用循環來做到這一點? – user2924450
@ user2924450我認爲循環會很好,因爲'cellfun'有時比循環更糟糕。見[這裏](http://stackoverflow.com/questions/18284027/cellfun-versus-simple-matlab-loop-performance)。看我的編輯。 –