Put matrix in cell

29 Ansichten (letzte 30 Tage)
NA
NA am 10 Dez. 2018
Bearbeitet: Stephen23 am 10 Dez. 2018
I have this matrix T=[ 3 6 1 12 7 10 6 0 0 22 0 15;
2 4 4 3 2 4 5 0 0 20 0 4;
0 1 0 2 0 2 0 0 0 17 0 16;
0 5 0 6 0 7 0 0 0 6 0 0;
0 0 0 0 0 28 0 0 0 0 0 0]
I want to put each column of matrix T in cell c like this (the result should be)
c={[3,2], [6,4,1,5], [1,4], [12,3,2,6], [7,2], [10,4,2,7,28], [6,5],[ ],[ ],[22,20,17,6],[ ],[15,4,16]}
insted of zero column put [ ]
do not put zero in the cell

Akzeptierte Antwort

Stephen23
Stephen23 am 10 Dez. 2018
Bearbeitet: Stephen23 am 10 Dez. 2018
Simpler:
>> T = [3,6,1,12,7,10,6,0,0,22,0,15;2,4,4,3,2,4,5,0,0,20,0,4;0,1,0,2,0,2,0,0,0,17,0,16;0,5,0,6,0,7,0,0,0,6,0,0;0,0,0,0,0
28,0,0,0,0,0,0]
T =
3 6 1 12 7 10 6 0 0 22 0 15
2 4 4 3 2 4 5 0 0 20 0 4
0 1 0 2 0 2 0 0 0 17 0 16
0 5 0 6 0 7 0 0 0 6 0 0
0 0 0 0 0 28 0 0 0 0 0 0
>> F = @(v)v(v~=0).';
>> C = cellfun(F,num2cell(T,1),'uni',0);
>> C{:}
ans =
3 2
ans =
6 4 1 5
ans =
1 4
ans =
12 3 2 6
ans =
7 2
ans =
10 4 2 7 28
ans =
6 5
ans =
[]
ans =
[]
ans =
22 20 17 6
ans =
[]
ans =
15 4 16

Weitere Antworten (1)

KSSV
KSSV am 10 Dez. 2018
T=[ 3 6 1 12 7 10 6 0 0 22 0 15;
2 4 4 3 2 4 5 0 0 20 0 4;
0 1 0 2 0 2 0 0 0 17 0 16;
0 5 0 6 0 7 0 0 0 6 0 0;
0 0 0 0 0 28 0 0 0 0 0 0] ;
c={[3,2], [6,4,1,5], [1,4], [12,3,2,6], [7,2], [10,4,2,7,28], [6,5],[ ],[ ],[22,20,17,6],[ ],[15,4,16]} ;
A = T(:)' ;
ii = zeros(size(A));
jj = A > 0;
ii(strfind([0,jj(:)'],[0 1])) = 1;
idx = cumsum(ii).*jj;
out = accumarray( idx(jj)',A(jj)',[],@(x){x'});
  1 Kommentar
NA
NA am 10 Dez. 2018
the codes gives me this result
c={[3,2], [6,4,1,5], [1,4], [12,3,2,6], [7,2], [10,4,2,7,28,6,5], [22,20,17,6],[15,4,16]}
but I want this result
c={[3,2], [6,4,1,5], [1,4], [12,3,2,6], [7,2], [10,4,2,7,28], [6,5],[ ],[ ],[22,20,17,6],[ ],[15,4,16]} ;

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by