1
我有一個單元格數組,每列都有一個yx1單元格。我想隨機化列中的「行」。也就是說,對於元素爲a_1,a_2,... a_y的每個yx1單元,我想對a_i的索引應用相同的置換。如何在單元格陣列中重排行
我有做這個的功能,
function[Oarray] = shuffleCellArray(Iarray);
len = length(Iarray{1});
width = length(Iarray);
perm = randperm(len);
Oarray=cell(width, 0);
for i=1:width;
for j=1:len;
Oarray{i}{j}=Iarray{i}{perm(j)};
end;
end;
但你可以看到這是一個有點難看。有沒有更自然的方式來做到這一點?
我意識到我可能使用了錯誤的數據類型,但由於遺留原因,我想避免切換。但是,如果答案是「切換」,那麼我想這就是答案。
很好用!我應該真的瞭解更多關於matlab中可用的高階編程。 – Nathan 2015-02-05 16:22:34
[This](http://es.mathworks.com/help/matlab/matlab_prog/vectorization.html)可能是一個好開始 – 2015-02-05 16:47:45