matlab 中如何将一个字符串赋值给一个变量
作者&投稿:梁注 (若有异议请与网页底部的电邮联系)
上面的回答很正确了,无非就两个办法:
1)就是把目录底下所有的mat文件都提取出来
file_name
=
dir('*.mat');
除开file_name(1).name和file_name(2).name是.和..外,其他都是mat文件名。
2)就是连续load,每次改变file_name
for
i
=
1:13
name
=
['data1_al_',num2str(i),'__u'];
load
name;
%
your
code;
end
还有一个很笨的办法,就是load了以后,用eval(s)来执行一次,顺便赋值。。(s是命令行)
楼上的回答欠妥。
用eval函数没错,但按照楼上的用法,适应性很差,比如b是其它数据类型的,例如struct或cell之类的呢?而且使用num2str这类函数本身还存在有效数字导致的精度损失问题。
其实正确的用法非常简单:
eval([a '=b;'])
可以原汁原味的把b赋值给a所保存的变量名中,没有任何精度损失,且适用于任意数据类型。
x不管是什么型的都会变成字符串赋值给y。
整体一个符号变量:y=sym('表达式')
如果觉得好,别忘记采用哦。。。
变量名=‘字符串’。
比C/C++简单很多,直接一个命令行搞定,如下:
>> str = 'abc'
str =
abc
琴党倍他: 单个表示直接输入:y=syms x x不管是什么型的都会变成字符串赋值给y.整体一个符号变量:y=sym('表达式') 如果觉得好,别忘记采用哦...
镶黄旗15562302729: matlab 中 如何实现将字符串变量的值作为新的变量名 并对该新的变量名赋值 - ?
琴党倍他: 上面的回答很正确了,无非就两个办法:1)就是把目录底下所有的mat文件都提取出来 file_name= dir('*.mat'); 除开file_name(1).name和file_name(2).name是.和..外,其他都是mat文件名.2)就是连续load,每次改变file_name for i=1:13 name= ['data1_al_',num2str(i),'__u']; load name;% your code; end 还有一个很笨的办法,就是load了以后,用eval(s)来执行一次,顺便赋值..(s是命令行)
镶黄旗15562302729: matlab中,如何把链接起来的字符串赋给一个数组? zr='0'; on='1'; h(254,2)=[on,zr]; 我想得到h(254,2)的 - ?
琴党倍他: matlab里字符数组每个元素只能放1个字符,需要放多个字符可以用元胞数组 h(254,2)={[on,zr]};
镶黄旗15562302729: 在matlab中怎么使一个字符串abc 将a赋予1 得abc 为1bc 这样不行:syms abc;a=1 >>abc abc - ?
琴党倍他: k='abc'; k=abs(k); for i=1:length(k'); if k(i)==97; k(i)=49; end end k=setstr(k);
镶黄旗15562302729: matlab如何将一个向量赋给一个字符串 用来替换向量的名字 - ?
琴党倍他: 举个例子:b = rand(1, 110); for i = 1:11 eval(sprintf('x%03d = b(%d:%d);', i, 10*i-9, 10*i)); end 没人会去定义这么多"有规律"的变量,为什么不直接用元胞数组来存呢.
镶黄旗15562302729: matlab 怎么给符号变量赋值 - ?
琴党倍他: 用subs(W)把符号表达式里面的符号量用当前工作区中的同名变量替换,也就是用户所要的赋值了. 其实任何矩阵的元素都可以直接作为变量来使用,能否作为变量的唯一判断标准就是它是否能够放在赋值符号(=)的左边. matlab中subs()...
镶黄旗15562302729: 请教,matlab中如何给字符串表示的多项式赋值 - ?
琴党倍他: f1 =(x3 - 1.171)^2 + (y3 - 0.2665)^2 - 0.05306 f2 =x3^2 + y3^2 - 0.2985 [sx3,sy3]=solve(f1==0,f2==0) x3=double(sx3) y3=double(sy3) f1v=double(subs(f1))
镶黄旗15562302729: matlab中,如何在一个符号表达式中赋值求解 - ?
琴党倍他: 比如要赋值a=1 b=2 那么用subs(r,[a b],[1 2]); 语法是subs(s,old,new); 假如只有一个符号变量,可以为subs(s,new);
镶黄旗15562302729: matlab怎么建立字符串向量 - ?
琴党倍他: MATLAB建立字符串向量如果字符串向量只有一行,可以直接赋值例如 str = ['tea'];如果字符串向量有多行例如 str = ['tea';'bee';'see'];多行情况下,要保证每一行的字符串个数一致,否则会出现错误
镶黄旗15562302729: matlab中,如何向一个向量中写入字符串?并且这个向量可以根据需要增加 - ?
琴党倍他: 还在弄这个问题呢,我试了cell类型好像不需要预先指定大小啊 for i=1:N str{i} = filename(i).name; end