楼主: cooper56
1060 4

[其他] matlab eval语句问题 [推广有奖]

  • 9关注
  • 21粉丝

已卖:289份资源

学科带头人

26%

还不是VIP/贵宾

-

威望
0
论坛币
24 个
通用积分
15.3579
学术水平
52 点
热心指数
40 点
信用等级
46 点
经验
20493 点
帖子
844
精华
0
在线时间
3004 小时
注册时间
2009-10-15
最后登录
2025-10-13

楼主
cooper56 在职认证  发表于 2017-9-15 18:42:12 |AI写论文
10论坛币
tdy变量是一个字符串变量,我想执行eval语句
eval([tdy,'target','=','targethands;']);该语句不可执行
eval(['target',tdy,'=','targethands;']);该语句可执行
请问为什么字符串变量放到前面就不可执行了,怎么样才能达到字符串变量在前面?

最佳答案

XIANG_LIU 查看完整内容

实际上eval('string '), 就是要将括号里的内容拿出来直接执行,比如说我要将targethands 的值赋给 target 变量,直接执行应该就是 target= targethands; 如果要使用eval语句的话就是 eval(['target','=','targethands;']); 楼主的问题我没有很明白,在没有给targethands 声明之前,两条语句都没办法执行。 如果说tdy 是一个字符串的话,那么两条语句应该没有太大差异,在给 targehands 有声明之前,比如在语句前已经给定tar ...
关键词:MATLAB atlab matla eval Atl

沙发
XIANG_LIU 发表于 2017-9-15 18:42:13

实际上eval('string '), 就是要将括号里的内容拿出来直接执行,比如说我要将targethands 的值赋给 target 变量,直接执行应该就是 target= targethands;  如果要使用eval语句的话就是 eval(['target','=','targethands;']);

楼主的问题我没有很明白,在没有给targethands 声明之前,两条语句都没办法执行。 如果说tdy 是一个字符串的话,那么两条语句应该没有太大差异,在给 targehands 有声明之前,比如在语句前已经给定targethands='abc'; tdy = 'abc'; 那么两条语句的结果是:
abctarget = 'abc';
targetabc = 'abc';
等于是声明了两个变量。
已有 1 人评分论坛币 收起 理由
giresse + 20 精彩帖子

总评分: 论坛币 + 20   查看全部评分

藤椅
XIANG_LIU 发表于 2017-9-15 21:36:30
实际上eval('string '), 就是要将括号里的内容拿出来直接执行,比如说我要将targethands 的值赋给 target 变量,直接执行应该就是 target= targethands;  如果要使用eval语句的话就是 eval(['target','=','targethands;']);

楼主的问题我没有很明白,在没有给targethands 声明之前,两条语句都没办法执行。 如果说tdy 是一个字符串的话,那么两条语句应该没有太大差异,在给 targehands 有声明之前,比如在语句前已经给定targethands='abc'; tdy = 'abc'; 那么两条语句的结果是:
abctarget = 'abc';
targetabc = 'abc';
等于是声明了两个变量。

板凳
bhu02 发表于 2017-9-15 22:54:14

报纸
redleaves_ 发表于 2017-9-17 17:07:58
建议楼主尝试在其他电脑上运行该句代码。

已在MATLAB 2012a及MATLAB 2017a上分别成功运行这两句代码,无报错(需对字符串变量tdy及targethands变量预先赋值)。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-4 04:31