How to load text file to workspace variables?
14 次查看(过去 30 天)
显示 更早的评论
Hi,
I wonder how to read/load variables from text file to matlab, with following format:
var1 val1
var2 val2
var3 val3
var4 val4
I want them to be loaded to workspace as variables with string name in var and numeric value as val.
2 个评论
Stephen23
2019-10-26
Use indexing.
Indexing is neat, simple to debug, and very efficient (unlike what you are trying to do).
回答(1 个)
per isakson
2019-10-26
编辑:per isakson
2019-10-26
"load to workspace as variables with string name in var and numeric value as val." There need to be a really good reason to do that, because it comes at a cost. Read Why Variables Should Not Be Named Dynamically and then read Magically Making Variables Appear in a Workspace is Risky a second time.
After reading try
cssm
which outputs
Name Size Bytes Class Attributes
S 1x1 736 struct
var1 1x1 8 double
var2 1x1 8 double
var3 1x1 8 double
var4 1x1 8 double
where (in one m-file named cssm.m)
%%
fid = fopen( 'cssm.txt' );
cac = textscan( fid, '%s%f' );
fclose( fid );
%%
for jj = 1 : length(cac{1})
S.( cac{1}{jj} ) = cac{2}(jj); % dynamic names in a structure
assign( cac{1}{jj}, cac{2}(jj) ) % magically "poof" variables
end
whos S v*
function assign( name, val )
assignin( 'caller', name, val );
end
and where cssm.txt contains
var1 1
var2 2
var3 3
var4 4
Finally, are there any good reasons not to use "dynamic names in a structure" ?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!