# how to plot a 3d function (with two independent variables)

11 ビュー (過去 30 日間)
xueqi 2013 年 9 月 20 日
Hi,
I am trying to plot a 3d function,which contains two independent variables. I do not know is that I am not getting it right or something, it seems very complicated to plot it in Matlab. Could someone help me?
% d11=0.3;
d12=-0.1;
d21=0.2;
d22=-0.15;
r=0.01;
p1=0.4;
p2=0.6;
syms c1
syms c2
%eucara=@(c1,c2) -(1/r)*p1*exp(-r*(d11*c1+d12*c2))-(1/r)*p2*exp(-r*(d12*c1+d22*c2));
eucara= -(1/r)*p1*exp(-r*(d11*c1+d12*c2))-(1/r)*p2*exp(-r*(d12*c1+d22*c2));
ezplot(c1,c2,eucara)
I find that ezplot is most close to the function I want. But I get the error that there are Too many sym objects to plot. I think it means in this method, there should not be any variables in the function. So I need to write down the explicit expressions for eucara with p1,p2...etc being assigned with some particular numbers. But I do want to change them to make the plot more flexible. So my question is
• How to plot a 3d function?
• In which way the plot is flexible in the sense that it is easy to change the parameters of the function.

サインインしてコメントする。

### 採用された回答

A Jenkins 2013 年 9 月 20 日
ezplot() is a 2d function. ezsurf() will give you 3d.
ezsurf(char(eucara),[0 1000 0 1000])

サインインしてコメントする。

### その他の回答 (1 件)

Walter Roberson 2013 年 9 月 20 日
Use matlabFunction() to transform the symbolic expression into an anonymous function. Then apply that function over a grid of points and plot the result.

サインインしてコメントする。

### カテゴリ

Help Center および File ExchangeCalculus についてさらに検索

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by