assign input to variable name

I'm putting together a script that builds a .mat file and I was wondering, how can I create an array based off the name of a string? Example:
file = 'data_abc';
full_path =['folder/',file,'.csv'];
import = importdata(full_path)
data_abc = import.data;
How do you take the string and convert it to a variable name?
Thanks!

回答(1 个)

Generally this isn't a great idea, but if you want to, you can use eval. First make a string of the command you want to issue:
str = [file,' = import.data;'];
Then evaluate it as a command:
eval(str)
(Obviously you can combine these lines into one command, but I'm showing the steps for clarity.)
An alternative approach is to use a structure variable, using the filename as the fieldname:
x.(file) = import.data; % equivalent to x.data_abc = ...

2 个评论

"it isn't a great idea" can be interpeted as "IT IS A REALLY BAD IDEA"
Structure field and use save() with the -struct flag.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Workspace Variables and MAT Files 的更多信息

标签

提问:

2012-4-19

Community Treasure Hunt

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

Start Hunting!

Translated by