How to add a matrix data to cell array?

23 vues (au cours des 30 derniers jours)
Wes
Wes le 1 Nov 2019
Commenté : Wes le 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 commentaires
KALYAN ACHARJYA
KALYAN ACHARJYA le 1 Nov 2019
var1 = {'a' 'b' 'c'}
var2 = [1 2 3]';
What result you are expecting? Result=???
Wes
Wes le 1 Nov 2019
My expected result is to have var1 as below.
Capture.PNG

Connectez-vous pour commenter.

Réponses (2)

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

Connectez-vous pour commenter.


the cyclist
the cyclist le 1 Nov 2019
Modifié(e) : the cyclist le 1 Nov 2019
var1 = {'a' 'b' 'c'};
var2 = [1 2 3]';
var1(2:4,2) = num2cell(var2)
  1 commentaire
Wes
Wes le 1 Nov 2019
Thanks. It works very well.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by