Is it possible to rotate the data inside each cell of a cell array

5 vues (au cours des 30 derniers jours)
Aaron Smith
Aaron Smith le 5 Juil 2017
Commenté : Ijaz Ahmad le 24 Nov 2021
I have a cell array containing a matrix inside of each cell. I need to rotate the matrices. I have already found the rot90 command which works fine for the individual matrix oor for rotating the cells of a cell array. My query is, is it possible to rotate each of the matrices without doing it individually?
I was looking at using cellfun to attempt to do this
cellfun(rot90(finishCell{k}, 3));
This appears to manipulate the cells of the cell array and not the data inside

Réponse acceptée

Jan
Jan le 5 Juil 2017
While
C = cellfun(@rot90,C,'uni',0)
creates a copy of C, such that the double size of memory is required temporarily, a loop creates the duplicates one after the other:
for iC = 1:numel(C)
C{iC} = rot90(C{iC});
end
This might avoid the memory problems.
  3 commentaires
Valentino Cristini
Valentino Cristini le 22 Sep 2021
Hi, how would you add the k factor (how many times it shoud rotate the array by 90 degrees)?
Ijaz Ahmad
Ijaz Ahmad le 24 Nov 2021
k = randi([0,3], [1,numel(C)]);
for iC = 1:numel(C)
C{iC} = rot90(C{iC}, k(iC));
end

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by