Ivy_Kin 发表于 2006-9-13 16:01

GUI的M文件中要对数值进行运算,为什么默认是ASCII码?e.g希望+1,结果是+49

A = get_param('model/Constant','value')
set(handles.edit_disp,'String',A+1)
希望获取model中constant的值,然后+1显示出来。

如果是set(handles.edit_disp,'String',A),则显示A 的正确值。

如果进行了运算,就是按照ascii码来运算,得出结果不对。

怎么解决呢?

eight 发表于 2006-9-13 16:03

原帖由 Ivy_Kin 于 2006-9-13 16:01 发表
A = get_param('model/Constant','value')
set(handles.edit_disp,'String',A+1)
希望获取model中constant的值,然后+1显示出来。

如果是set(handles.edit_disp,'String',A),则显示A 的正确值。

如果进行 ...


如果你的A是double类型,改为 set(handles.edit_disp,'String',num2str(A+1)) 试试吧

Ivy_Kin 发表于 2006-9-13 16:29

谢谢eight!
A 是double类型的 A=1
试过set(handles.edit_disp,'String',num2str(A+1))结果是50
还是不对
郁闷阿

eight 发表于 2006-9-13 16:33

原帖由 Ivy_Kin 于 2006-9-13 16:29 发表
谢谢eight!
A 是double类型的 A=1
试过set(handles.edit_disp,'String',num2str(A+1))结果是50
还是不对
郁闷阿


晕,如果 A=1,那么 A+1 = 2,为何会是50?

Ivy_Kin 发表于 2006-9-13 16:50

大概前面我没有说清楚把
我建了一个 mdl,里面有一个constant,值为1,类型double
然后我建了一个gui,希望获取model中constant的值,付值给A,然后+1显示在edit_disp中。

A = get_param('model/Constant','value')
set(handles.edit_disp,'String',A)
结果是1 正确

A = get_param('model/Constant','value')
set(handles.edit_disp,'String',A+1)
结果是50 错误

A = get_param('model/Constant','value')
set(handles.edit_disp,'String',num2str(A+1))
结果是50 错误

不知道是那里设置或者有什么命令,可以进行数值运算,而不是ascii码运算?

这只是我毕业设计中的一小部分的一小部分,这都搞不定,怎么办啊 ?晕

eight 发表于 2006-9-13 16:54

原帖由 Ivy_Kin 于 2006-9-13 16:50 发表
大概前面我没有说清楚把
我建了一个 mdl,里面有一个constant,值为1,类型double
然后我建了一个gui,希望获取model中constant的值,付值给A,然后+1显示在edit_disp中。

A = get_param('model/Constant','va ...

关键是get_param这个函数的返回值不是double类型,你自己检查一下吧

Ivy_Kin 发表于 2006-9-13 17:10

谢谢eight的提醒
确实是这样
A = str2num(get_param('model/Constant','value'))
set(handles.edit_disp,'String',A+1)
结果是2 ,就对了
页: [1]
查看完整版本: GUI的M文件中要对数值进行运算,为什么默认是ASCII码?e.g希望+1,结果是+49