Surf or Mesh plot

2 views (last 30 days)
Mir Khadim Aalam
Mir Khadim Aalam on 19 Apr 2022
Commented: Star Strider on 20 Apr 2022
I have a matrix "A" of size =5100*34 and another vector "t" of size 5100*1, I want to plot both using the surf or mesh command, with "t" as x-axis, and the column vectors of "A" i.e 5100*1 samples as Z-axis and the 34 (1:1:34) as the y-axis. I am facing some problems with this, any help will be very useful.

Accepted Answer

Star Strider
Star Strider on 19 Apr 2022
Since ‘z’ must be a matrix to use surf or mesh, the call must be:
t = linspace(0, 5100, 5100);
y = linspace(0, 34, 34);
z = t(:) * sin(3*pi*y/numel(y));
figure
surf(t, y, z.', 'EdgeColor','none')
grid on
xlabel('t')
ylabel('y')
colormap(turbo)
The ‘z’ matrix must be transposed for this to work as you described.
.
  2 Comments
Mir Khadim Aalam
Mir Khadim Aalam on 20 Apr 2022
It helped, Thanks a lot.
Star Strider
Star Strider on 20 Apr 2022
As always, my pleaure!

Sign in to comment.

More Answers (1)

Davide Masiello
Davide Masiello on 19 Apr 2022
Try this
clear,clc
t = linspace(0,100,5100);
y = 1:34;
[t,y] = meshgrid(t,y);
A = 2./(t+1)+y.^2;
surf(t,y,A,'EdgeColor','none')

Community Treasure Hunt

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

Start Hunting!