1

我试图在笛卡尔坐标中找到一个特定方程的卷曲,其中用户的输入是使用 matlab 在文本框中键入的。在 CLI 中,我使用了以下等式并且它有效:curl([2*x+3*y, 2*y, 2*z], [x, y, z])

使用我创建的 GUI(为简单起见)一个文本框(假设它用于 x 系数)静态文本标签将显示答案,一个按钮将触发我的代码。

文本框标签是 inputTxt

静态文本标签标签是 inputValue

按钮回调是:

txtValue=get(handles.inputTxt, 'String');
set(handles.inputValue, 'String', curl([textValue*x, 0, 0], [x, y, z]));

按下按钮时,我听到一声叮当声,这会在 matlab cli 中引发错误,并且静态文本标签中没有任何内容。即使我自己设置 curl 参数,就像我首先在 CLI 中所做的那样: curl([2*x+3*y, 2*y, 2*z], [x, y, z]) 我得到相同的结果(叮当声)并且标签文本中没有任何内容。

提前致谢。

4

2 回答 2

1

刚刚找到答案,它确实奏效了。

要将 curl 结果传递给静态文本,请使用

char(curl([x^3*y^2*z, y^3*z^2*x, z^3*x^2*y], [x, y, z]));

完整代码

syms x y z;
set(handles.txtAns, 'String', char(curl([x^3*y^2*z, y^3*z^2*x, z^3*x^2*y], [x, y, z])));

txtAns 是静态文本标签,单击按钮后应显示以下答案(如果您将上述行放在按钮回调中)

矩阵[(x^2*z^3 - 2*x*y^3*z) (x^3*y^2 - 2*x*y*z^3 (-2*x^3*y*z + y^3*z^2)]

于 2013-03-18T23:13:38.200 回答
0

mmounirf,您可以尝试更改:

txtValue=get(handles.inputTxt, 'String');
set(handles.inputValue, 'String', curl([textValue*x, 0, 0], [x, y, z]));

对此:

txtValue=str2num(get(handles.inputTxt, 'String'));
set(handles.inputValue, 'String', num2str(curl([txtValue*x, 0, 0], [x, y, z])));

你也可以发布错误吗?基本上,您从需要将其转换为数字的编辑框中得到一个字符串。然后,当您设置文本时,您需要将获得的数字转换curl为字符串。我还注意到您更改txtValuetextValuewhich 也会导致错误。

于 2013-03-17T18:01:25.980 回答