matlab中“执行字符串”函数eval在不同情况下的用法(二)

ii=2;

ij=3;

H=[];

当使用H_2_3这样的格式存储数据时:


K>> eval(['HHHH_' num2str(ii) '_' num2str(ij) '=1'])


HHHH_2_3 =
     1


K>> eval(['HHHH_ii_ij=1'])


HHHH_ii_ij =
     1


注意:两种操作得到的结果不同


当使用H(2,3)这样的格式存储时

K>> eval(['HHH(' num2str(ii) ',' num2str(ij) ')=1'])


HHH =
     0     0     0
     0     0     1


K>> eval('HHH(ii,ij)=1')


HHH =
     0     0     0
     0     0     1


注意:两种操作得到的结果相同,而且后一种表达式更易读


原因在于对于H(ii,ij)编译器会自动识别ii,ij,执行H(2,3)赋值操作;

而对于H_ii_ij编译器无法识别ii,ij为变量,只能用不易读的赋值方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值