我有一个问题,在matlab中我可以用surfc编码来绘制复杂函数的三维图这是我的代码:\
figure
X=-2*pi:0.2:2*pi;
Y=-2*pi:0.2:2*pi;
[x,y]=meshgrid(X,Y);
z=3*x+5i*y;
sc=surfc(x,y,abs(z))
xlabel('Re(x)');
ylabel('Im(y)');
colormap jet
colorbar
但是在这里我想在应用设计器中实现这个。我想让用户输入他们在笛卡尔坐标系中的复杂函数x和y(而不是极坐标),然后向他们显示该图。但是当我用相同的代码运行,只做了一点点修改时,我总是得到错误消息:使用surfc时出错。表面z必须包含多行或多列。
以下是我的应用设计师回调:
% Button pushed function: MakeGraphButton
function MakeGraphButtonPushed(app, event)
x=-2*pi:0.2:2*pi;
y=-2*pi:0.2:2*pi;
[x,y]=meshgrid(x,y);
z=app.ComplexFunctionEditField.Value;
axes(app.UIAxes);
surfc(x,y,abs(z))
axis equal
grid on
end
end
我希望它会在我设计的应用程序上显示图形,但它只显示了错误消息。如何使其工作?
1条答案
按热度按时间6ie5vjzr1#
您正在使用编辑字段的
.Value
,因此它很可能是一个字符。然后您使用它,就好像您已经计算了x
和y
的某个函数一样,但实际上您并没有这样做!您可能需要这样的内容现在,您已经从字符输入(通过函数)转到了实际生成
z
的值(可用于绘图