How to put each two elements in a matrix in a cell ?

17 Ansichten (letzte 30 Tage)
Sarah A
Sarah A am 19 Jan. 2019
Kommentiert: Huw S am 28 Dez. 2021
Hello,
I want to create cell array using the elements of double array where each cell is a (1*2) matrix resulted by putting each two successive elements in a row in one cell. for example, suppose that we have the array A:
A= [ 1 2 3 4; 5 6 7 8; 9 10 11 12] and we want to create the cell array B where
B= { [1 2] [3 4] ;
[5 6] [ 7 8] ;
[9 10] [11 12] } . So any suggestion about how can I do that?
regards,

Akzeptierte Antwort

Guillaume
Guillaume am 19 Jan. 2019
Well, it's important to use proper formatting in your question. Stephan answered your original question according to the way it was formatted.
After your edit, it's still the same concept, use mat2cell. Read its documentation to learn how it works. In your case,
A= [ 1 2 3 4; 5 6 7 8; 9 10 11 12]
B = mat2cell(A, ones(1, size(A, 1)), ones(1, size(A, 2)/2) * 2)
  1 Kommentar
Huw S
Huw S am 28 Dez. 2021
Can't you get the same outcome with just B = num2cell(A) ?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Stephan
Stephan am 19 Jan. 2019
A= [ 1 2 3 4; 5 6 7 8; 9 10 11 12]
A=reshape(A',2,[])';
B = mat2cell(A,ones(1,size(A,1)))
  4 Kommentare
Sarah A
Sarah A am 19 Jan. 2019
No I need B =
{
[1 2] [3 4]
[5 6] [7 8]
[9 10] [11 12]
}
This line of code giveme B=
{
[1 2]
[3 4]
[5 6]
[7 8]
[9 10]
[11 12]
}
Stephan
Stephan am 19 Jan. 2019
A= [ 1 2 3 4; 5 6 7 8; 9 10 11 12]
B = mat2cell(A,[1 1 1],[2 2])
celldisp(B)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Cell Arrays 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