中易网

关于matlab变量赋值的问题

答案:1  悬赏:20  
解决时间 2021-02-26 23:42
clear
t1='is 0 1 2.5';
t2='r1 1 0 2';
t3='e 1 2 1 0 0.5';
t4='r4 1 3 3';
t5='g 3 2 1 0 1';
t6='r2 2 0 0.4';
t7='r3 3 0 1';
for a=1:7
n=get(strcat('t',num2str(a)))
end

程序如上,为什么n得到的只是变量名如t1、t2等,而不是变量里的值呢,请问怎样解决?谢谢谢谢,我是新手,着急死了

n=get(strcat('t',num2str(a))) 写错了,是
n=strcat('t',num2str(a)),问题在哪里啊?怎么解决呢?
最佳答案
你那么写,t1到t7是7个不同名字的变量,不能用你那种t加上数字的方法来识别变量名,
这跟变量在电脑中的存储形式有关,几乎没有哪种语言是这么干的。

通常的解决办法都是用数组。

而在matlab里,矩阵就是数组,不过由于字符串本身也是个字符组成的行向量(单行的矩阵),
所以如果多个字符串的话,也就是每行一个字符串,必须要求每行长度相同。
也就是说,如果你上面的字符串长度都相等,那你可以用
t(1,:)='......';
t(2,:)='......';
......
引用的时候用
t(a,:)就可以了。

不过通常多个字符串长度不等,那就会出错。
当然也可以用空格补齐,不过那样就改变字符串本身了。
所以通常用cell类型来解决,其实很简单,就是下标用{}而不是()括起来。

clear
t{1}='is 0 1 2.5';
t{2}='r1 1 0 2';
t{3}='e 1 2 1 0 0.5';
t{4}='r4 1 3 3';
t{5}='g 3 2 1 0 1';
t{6}='r2 2 0 0.4';
t{7}='r3 3 0 1';
for a=1:7
n=t{a} %我不明白这里你要干什么,get是获得对象的属性,参数应该是个句柄,所以应该不是你想的获取变量内容。不过你每次循环对n赋值,最后结果只是最后一次循环的,前面都覆盖了,也就是n最后等于t{7},这是要干什么啊?
end
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
文章添加到数据库中显示正常而提取用在前台后
连云港溢瑞科技有限公司怎么去啊,有知道地址
山东这里是北纬多少度啊
回答了百度知道上面的一些问题。为什么总感觉
泊松的泊怎么念
彩虹岛更新后的3种家族属性,不同的等级分别+
rsz鬼火摩托车125cc1小时能达到多少时速
专科动漫设计好找工作吗?动漫设计辛苦吗?适
如家酒店江阴人民东路店在什么地方啊,我要过
游戏侍魂有个喔哦的声音效果
探望做月子的母子送什么花比较好?
新民印业怎么去啊,有知道地址的么
骗一个女孩上床的 完了就分手的男人会付出多
已知a、b满足a^2-2a-1=0,b^2-2b-1=0,则a/b+b/
李金生 国家篮球总局 是什么样的人
推荐资讯
红杜鹃我想知道这个在什么地方
月来越好点击下一步,开始改善吧时总出现untru
网上被骗了70块。想找到这个人能找到不?
美丽的安徽仿照美丽的小兴安玲的作文
我想知道。新开美容院怎样宣传,怎样不使顾客
兴隆路/文化西街(路口)在什么地方啊,我要过
红牛有大瓶装的吗?
如何变双眼皮,不做手术。。。这是阴阳眼吗?
做过胸腔镜手术还能考人民警察吗
雅芳产品是纯植物精华的吗?
电影捉鬼特攻队里面方大胆真名是什么
苹果6怎样下载保险师
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?