realhappy 发表于 2006-10-19 09:37

急!这语句是怎么执行的

eval(['x=b2f(pop(1,:),bounds,bits);=' evalFN ...
        '(x,); pop(1,:)=;']);

运行后出错
??? Error using ==> horzcat
Conversion to cell from double is not possible.

想弄清楚程序执行方式后查找!先谢谢那位朋友的帮忙。

心灯 发表于 2006-10-19 12:32

eval语句是执行字符串代码的一种形式,即运行字符串里的 matlab的命令

上面一句等价于

x=b2f(pop(1,:),bounds,bits);
=' evalFN '(x,);
pop(1,:)=;

注意到中间的语句 'evalFN',这里是一个字符串,evalFN这个函数是前面定义过的,如果直接按上面的三句来执行,那么 'evalFN' 你就要用明确的函数来代替了。而在evalFN存在多个选择的时候,你每重新选定一个evalFN的时候,如果不采用eval的形式,那么程序中evalFN就要进行修改了,而采用eval形势,只要修改前面的'evalFN='这个语句就可以了。.

由于字符串形成有一定的方便性,所以用来写一些通用性的命令来优化程序结构,方便编程,也方便了代码的通用性。

我现在经常用eval函数实现的操作有:批量保存图形,批量保存变量到文件,改变某个参数批量运行某个程序并保留结果,太方便了。

[ 本帖最后由 心灯 于 2006-10-19 12:35 编辑 ]

realhappy 发表于 2006-10-19 14:13

谢谢心灯罗,加一句,你的头像好威猛!呵呵

apple_k 发表于 2006-10-19 15:44

长知识了

心灯 发表于 2006-10-19 19:36

原帖由 realhappy 于 2006-10-19 14:13 发表
谢谢心灯罗,加一句,你的头像好威猛!呵呵

不用客气,呵呵

我的ID是色厉内荏型的,现实生活中貌似色也不厉? :@$
页: [1]
查看完整版本: 急!这语句是怎么执行的