Convert vector of cells to variables

1 view (last 30 days)
Hi! I'm importing data from excel and I'm finding the position of the data of interest using findstr and it works fine. My problem is that I want to get a string from the vector of cells (eg. Temperature) and assigning it a vector of digits. This is how I want it to be:
Text={'Temp', 'Humidity', 'Age'}
num=[20 0.8 2; 22 0.85 2.1; 23 0.9 2.2]
Temp=[20 22 23]
Thankful for help Regards Johan

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 17 Jun 2013
For k=1:numel(Text)
assignin('base',Text{k},num(:,k))
end
  2 Comments
Jan
Jan on 17 Jun 2013
Such remote controlled assigments have severe disadvatnages: They decrease the processing speed massively because the JIT cannot understand the program at compile time anymore. And the debugging suffers even more. Therefore I strongly recommend to follow Walter's answer.

Sign in to comment.

More Answers (2)

Walter Roberson
Walter Roberson on 17 Jun 2013

Andrei Bobrov
Andrei Bobrov on 17 Jun 2013
Edited: Andrei Bobrov on 17 Jun 2013
use dataset array
Text={'Temp', 'Humidity', 'Age'}
num=[20 0.8 2; 22 0.85 2.1; 23 0.9 2.2]
d = mat2dataset(num,'VarNames',Text);
>> d.Temp
ans =
20
22
23
or
d2 = cell2struct(num2cell(num,1),Text,2);
d2.Temp
ans =
20
22
23

Community Treasure Hunt

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

Start Hunting!