How can I plot a figure with multiplying a vector with matrices?
Show older comments
How can I plot the below figure in matlab?

I tried the below source code:
[X,Y] = meshgrid(-6:0.1:6);
Z = [X Y].*[2 1;1 3].*([X Y].') + [1 2].*[X Y].' + 3;
surf(X,Y,Z)
colormap(jet)
colorbar
and
[X,Y] = meshgrid(-6:0.1:6);
Z = [X Y]*[2 1;1 3]*([X Y].') + [1 2]*[X Y].' + 3;
surf(X,Y,Z)
colormap(jet)
colorbar
However, it showed the errors:
Error using .*
Matrix dimensions must agree.
Error in Fig20_3 (line 2)
Z = [X Y].*[2 1;1 3].*([X Y].') + [1 2].*[X Y].' + 3;
and
Error using *
Inner matrix dimensions must agree.
Error in Fig20_3 (line 2)
Z = [X Y]*[2 1;1 3]*([X Y].') + [1 2]*[X Y].' + 3;
Answers (2)
Walter Roberson
on 29 Jul 2020
1 vote
This is a case where you need the * operator instead of the .* operator
4 Comments
Walter Roberson
on 29 Jul 2020
you will also need some reshape operations. I will post a bit later.
TRUNG HOANG
on 29 Jul 2020
Edited: TRUNG HOANG
on 29 Jul 2020
Walter Roberson
on 30 Jul 2020
I think it might be easiest to expand the expression:
[X,Y] = meshgrid(-6:0.1:6);
Z = X + 2*Y + X .* (2*X + Y) + Y .* (X + 3*Y) + 3;
surf(X, Y, Z, 'edgecolor', 'none')
madhan ravi
on 30 Jul 2020
TRUNG HAONG comments:
Good.
madhan ravi
on 28 Jul 2020
doc fsurf
Categories
Find more on Surface and Mesh Plots 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!