MATLAB Answers

Assigning columns of matrix to strings.

24 views (last 30 days)
Hello everyone
I have following matrix which have nums and I have stored strings in another.
Name={'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' };
Data=[ 1 2 3 4 5 6 7 8 9 10 11
12 13 14 15 16 17 18 19 20 21 22
23 24 25 26 27 28 29 30 31 32 33];
Number of rows and columns can vary but number of strings will remain same as thr number of columns in Data matrix
I want to assign column matrix to corresponding strings
like:
a = [1; 12; 23]
b = [2; 13; 24]
..... and so on

Accepted Answer

Stephen Cobeldick
Stephen Cobeldick on 6 Apr 2021
Naming variables dynamically is one way that beginners force themselves into writing slow, complex, buggy code:
Instead of doing that, you can write simple and efficient code by creating a structure:
Name={'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' };
Data=[ 1 2 3 4 5 6 7 8 9 10 11
12 13 14 15 16 17 18 19 20 21 22
23 24 25 26 27 28 29 30 31 32 33];
S = cell2struct(num2cell(Data,1),Name,2)
S = struct with fields:
a: [3×1 double] b: [3×1 double] c: [3×1 double] d: [3×1 double] e: [3×1 double] f: [3×1 double] g: [3×1 double] h: [3×1 double] i: [3×1 double] j: [3×1 double] k: [3×1 double]
S.a
ans = 3×1
1 12 23
S.b
ans = 3×1
2 13 24
  4 Comments
Karanvir singh Sohal
Karanvir singh Sohal on 6 Apr 2021
@Stephen Cobeldick saved myself from code refactoring :)
figured out the error and possible solution for that.
Thanks once again.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!