How to add a matrix data to cell array?

23 次查看(过去 30 天)
Wes
Wes 2019-11-1
评论: Wes 2019-11-1
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 个评论
KALYAN ACHARJYA
KALYAN ACHARJYA 2019-11-1
var1 = {'a' 'b' 'c'}
var2 = [1 2 3]';
What result you are expecting? Result=???
Wes
Wes 2019-11-1
My expected result is to have var1 as below.
Capture.PNG

请先登录,再进行评论。

回答(2 个)

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

请先登录,再进行评论。


the cyclist
the cyclist 2019-11-1
编辑:the cyclist 2019-11-1
var1 = {'a' 'b' 'c'};
var2 = [1 2 3]';
var1(2:4,2) = num2cell(var2)

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by