How can I create a cell array by combining arrays?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Lets say;
names=['X1','X2','X3']
first=[1 2 3]
second=[4 5 6]
third=[7 8 9]
I need a cell array that is combination of these four arrays. It should be 1x4!
cellArray={['X','Y','Z'],[1 2 3],[4 5 6],[7 8 9]}
How can I write that code. horzcat is no good. Thanks!
1 Kommentar
Antworten (2)
Ahmet Cecen
am 12 Nov. 2016
Bearbeitet: Ahmet Cecen
am 12 Nov. 2016
it is unclear what you are trying to accomplish with the cell conversion, so this is the best I can do.
0 Kommentare
George
am 12 Nov. 2016
What are you having trouble with? The code you posted works.
>> cellArray={['X','Y','Z'],[1 2 3],[4 5 6],[7 8 9]}
cellArray =
1×4 cell array
'XYZ' [1×3 double] [1×3 double] [1×3 double]
>>
3 Kommentare
Ahmet Cecen
am 14 Nov. 2016
Bearbeitet: Ahmet Cecen
am 14 Nov. 2016
Oooh, string arrays are uncomfortable in MATLAB. Either do {'X','Y','Z'} or make a table() instead of a cell array.
['X','Y','Z'] is the concatenate constructor for strings, not an array.
Image Analyst
am 14 Nov. 2016
Billie Jean, please read the FAQ on cell arrays. I think it will help you understand. http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F
With ['X','Y','Z'] you are concetnating 3 single characters to form a 1-by-3 character array, also known as a string. They are the same thing. In fact you can also set it to 'XYZ' and get the same thing. Just look:
>> s=['X','Y','Z']
s =
XYZ
>> whos s
Name Size Bytes Class Attributes
s 1x3 6 char
>> s='XYZ'
s =
XYZ
>> whos s
Name Size Bytes Class Attributes
s 1x3 6 char
Now, that string is inside the first cell of a 1-by-4 cell array. A single cell, like the first one , is a 1-by-1 array if you want to look at it that way. But because it's a cell, it can contain virtually anything inside it. And in this case, that first cell contains a 1x3 string (character array) inside it. Think of a cell like a bucket, and a cell array as an array of buckets. You can throw anything you want into the buckets: a string, a double array, a structure, a table, even another cell or cell array. Different buckets can contain anything - you're not required to have a whole column or whole row have the same data type in it. You can vary the contents of the buckets on a bucket-by-bucket basis. Again, read the FAQ - you won't regret it.
Siehe auch
Kategorien
Mehr zu Characters and Strings 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!