MATLAB Answers

how to convert the cell to matrix

1 view (last 30 days)
Shehab Tarek
Shehab Tarek on 15 May 2020
Edited: Stephen Cobeldick on 16 May 2020
i have cell as shown in picture
and i want to convert it to Array then flip it to be like
array=
00
10
010
110
111
EDIT: Shehab Tarek's "Answer" moved here:
%YY
%[0,0]
%[0,1]
%[0,1,0]
%[1,1,0]
%[0,1,1]
%[1,1,1]
matrix=[];
lenght=[];
for i=1:6
[~,c]=size(YY{i}); % the cell matrix
length=[length c]; % length of each element in cell
s=YY{i}; % variable
matrix=[matrix s];
end
length=length';
although you can show the code in file un.m

  3 Comments

Ameer Hamza
Ameer Hamza on 15 May 2020
In MATLAB arrays, the number of elements in each row cannot be different. If you have vectors of different lengths, it is best to use cell arrays.
Shehab Tarek
Shehab Tarek on 15 May 2020
i know that the vector lenght is not the same .then i have the length of each array in the cell for example
length=[2,2,3,3,3];
martix=0010010010110111;
i want to diveded the matrix to sub element depend on the length
to be
matrix =[00,10,010,110,111];
Ameer Hamza
Ameer Hamza on 15 May 2020
Can you share the code which is used to generate the matrix? You cannot represent 0010010010110111 in floating-point format. Is it a character array?

Sign in to comment.

Answers (1)

dpb
dpb on 16 May 2020
Presuming the input is a cell array, m...
>> cellfun(@(s) sprintf('%d',fliplr(s)),m,'UniformOutput',false)
ans =
6×1 cell array
{'00' }
{'01' }
{'010'}
{'011'}
{'110'}
{'111'}
>>
NB: the sample output has only five elements of the six in the input array...

  0 Comments

Sign in to comment.


Translated by