How can i simultaneously reference in cells
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I have a cell array, lets say C. Each cell contains a matrix.
For example lets say C is
C{1}=[1 2;3 4;5 6]
C{2}=[7 8;9 10;11 12]
How can I create a new cell array D, whose i-th element is a matrix consisted by the i-th transposed rows of all matrices in C?
Then D must be
D{1}=[1 7;2 8]
D{2}=[3 9;4 10]
D{3}=[5 11;6 12]
1 Commento
Image Analyst
il 30 Gen 2013
Why do you want the trouble of a cell array when just a normal numerical array would be so much easier?
Risposta accettata
Kye Taylor
il 30 Gen 2013
This is fun... you can try
C{1}=[1 2;3 4;5 6]
C{2}=[7 8;9 10;11 12]
g = @(j)[C{1}(j,:);C{2}(j,:)]'; % function handle
D = arrayfun(g,1:3,'UniformOutput',false); % awesome function
0 Commenti
Più risposte (1)
Jan
il 30 Gen 2013
Modificato: Jan
il 30 Gen 2013
E = cat(3, C{:});
E = permute(E, [3,2,1]);
n = size(E, 3);
D = cell(1, n); % Faster than CELL2MAT:
for iD = 1:n
D{iD} = E(:, :, iD);
end
Sorry, I cannot test this currently.
But consider Image Analysts idea: When you operate on rectangulare numerical values, a double array is smarter and much more efficient than a cell.
0 Commenti
Vedere anche
Categorie
Scopri di più su Matrices and Arrays in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!