two variables one equation 3D plot
2 views (last 30 days)
Show older comments
Nickel Blankevoort
on 24 Nov 2021
Commented: Nickel Blankevoort
on 1 Dec 2021
Dear,
I have two input vector matrices as variables alf and gam:
alf = [0, 0.03, 0.1, 0.5, 1, 1.5];
gam = [0, 0.03, 0.1, 0.5, 1, 1.5];
Then I have some complicated steps resulting in one value for each possible combination of the two variables alf and gam.
For example alf=0.03 and gam=1 gives one answer. And alf=0.5 and gam=0 gives an other answer etc.
How can I plot this as a 3D plot with a surface with alf and gam as X and Y axes and the outcome Z axis.
if I try:
[gamM, alfM]=meshgrid(gam,alf);
surf(gamM,alfM,log10(T))
it gives me the error saying:
Error using surf (line 71)
Z must be a matrix, not a scalar or vector.
kind regards Nickel
7 Comments
Dyuman Joshi
on 25 Nov 2021
I can't see your code? Or did you mean, that you have included what I wrote in your code?
Accepted Answer
Dyuman Joshi
on 25 Nov 2021
I have modified your code -
clc;clear
eL=0;
eR=0;
gammaL=-2;
gammaR=-2;
aL=-0.1;
aR=-0.1;
E=linspace(-0,0.0001,1);
kL=acos((eL-E)/(2*gammaL));
kR=acos((eR-E)/(2*gammaR));
h=6.582119514*10^-16;
N = 3;
alf = [0, 0.03, 0.1, 0.5, 1, 1.5];
gam = [0, 0.03, 0.1, 0.5, 1, 1.5];
for i=1:6
for j=1:6
H = diag(gam(i).*ones(1,N-1),-1);
if N>2
H = diag(gam(i).*ones(1,N-1),-1)+diag(alf(i).*ones(1,N-2),-2);
else
H = diag(gam(i).*ones(1,N-1),-1);
end
H = H+H';
a=1;
b=N;
n=1;
g=(((E(n))*eye(length(H))-H))^-1;
gaa=g(a,a);
gbb=g(b,b);
gab=g(a,b);
gba=g(b,a);
vL=(2*gammaL*sin(kL(n)))/h;
vR=(2*gammaR*sin(kR(n)))/h;
gL=(exp(i*kL(n)))/(-gammaL);
gR=(exp(i*kR(n)))/(-gammaR);
sL=aL.^2*gL;
sR=aR.^2*gR;
d=1+sL*gaa+sR*gbb+sR*sL*(gaa*gbb-gab*gba);
t=i*h*sqrt(vL)*aL*gL*(gba/d)*gR*aR*sqrt(vR);
T(i,j)=[abs(t^2)]; %I would like to store the value of this T for every iteration
end
end
[gamM, alfM]=meshgrid(alf,alf);
surf(gamM,alfM,log10(T))
More Answers (0)
See Also
Categories
Find more on Whos in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!