How to add a matrix data to cell array?

23 Ansichten (letzte 30 Tage)
Wes
Wes am 1 Nov. 2019
Kommentiert: Wes am 1 Nov. 2019
I have var1 in cell array and var2 in matrix.
var1 = {'a' 'b' 'c'}
var2 = ([1 2 3])'.
I like add var2(1) to var1{2,2}, var2(2) to var1{3,2} and var2(3) to var1{4,2}. How can I do that smartly, not one by one? Thank you!
  4 Kommentare
KALYAN ACHARJYA
KALYAN ACHARJYA am 1 Nov. 2019
var1 = {'a' 'b' 'c'}
var2 = [1 2 3]';
What result you are expecting? Result=???
Wes
Wes am 1 Nov. 2019
My expected result is to have var1 as below.
Capture.PNG

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Guillaume
Guillaume am 1 Nov. 2019
Probably the best answer is don't use a cell array, use a table which is designed exactly for the purpose of having named columns:
>> var1 = {'a', 'b', 'c'}
>> var2 = magic(3);
>> t = array2table(var2, 'VariableNames', var1)
t =
3×3 table
a b c
_ _ _
8 1 6
3 5 7
4 9 2
>> t.a %access data in column 'a'
ans =
8
3
4
  1 Kommentar
Wes
Wes am 1 Nov. 2019
Unfortunately I have an old version that doesn't support array2table, so couldn't test your proposal. Anyway thank you!

Melden Sie sich an, um zu kommentieren.


the cyclist
the cyclist am 1 Nov. 2019
Bearbeitet: the cyclist am 1 Nov. 2019
var1 = {'a' 'b' 'c'};
var2 = [1 2 3]';
var1(2:4,2) = num2cell(var2)

Kategorien

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

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by