Cell Array to Matrix but keep zeros

8 vues (au cours des 30 derniers jours)
Aaron
Aaron le 3 Mar 2017
Commenté : Aaron le 3 Mar 2017
Hello! So my problem is that I have a tridiagonal cell array, say
x y z [] [] []
[] x y z [] []
[] [] x y z []
[] [] [] x y z
Where each tridiagonal element (x, y, and z) is a 2x2 matrix. I want to use the cell2mat function to create a matrix and make each cell array [] element a 2x2 matrix of zeros (so [] -> [0 0;0 0]). So I would end up going from a NxN cell array to a 4Nx4N matrix. When I use cell2mat, however, the []'s are removed and the matrix becomes disordered. Could anyone suggest a tip to make this conversion possible? Thank you! (and thanks for reading, either way)

Réponse acceptée

Stephen23
Stephen23 le 3 Mar 2017
Modifié(e) : Stephen23 le 3 Mar 2017
Where C is your cell array:
C(cellfun('isempty',C)) = {[0,0;0,0]};
out = cell2mat(C);
Here is a complete working simplified example:
>> C = {[1,2;3,4],[];[],[5,6;7,8]};
>> C(cellfun('isempty',C)) = {[0,0;0,0]};
>> cell2mat(C)
ans =
1 2 0 0
3 4 0 0
0 0 5 6
0 0 7 8
  1 commentaire
Aaron
Aaron le 3 Mar 2017
Perfect! Thank you very much! :D

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by