How to add a matrix data to cell array?

23 views (last 30 days)
Wes
Wes on 1 Nov 2019
Commented: Wes on 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 Comments
KALYAN ACHARJYA
KALYAN ACHARJYA on 1 Nov 2019
var1 = {'a' 'b' 'c'}
var2 = [1 2 3]';
What result you are expecting? Result=???
Wes
Wes on 1 Nov 2019
My expected result is to have var1 as below.
Capture.PNG

Sign in to comment.

Answers (2)

Guillaume
Guillaume on 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 Comment
Wes
Wes on 1 Nov 2019
Unfortunately I have an old version that doesn't support array2table, so couldn't test your proposal. Anyway thank you!

Sign in to comment.


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

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!