I want vector surface plot

2 views (last 30 days)
stelios loizidis
stelios loizidis on 30 May 2022
Answered: Star Strider on 30 May 2022
Hello,
I have three vectors: Prices:1X30, Position:1X30 and Quantity:1X30 and I want to do the surface plot. I get the following error:
"Z must be a matrix, not a scalar or vector."
Your help is important.
  2 Comments
stelios loizidis
stelios loizidis on 30 May 2022
Do you think it's right to do the 30x30 matrix with these three vectors?

Sign in to comment.

Answers (2)

KSSV
KSSV on 30 May 2022
Prices = 1:30 ;
Position = 1:30 ;
Quantity = rand(1,30) ;
Quantity = repmat(Quantity,30,1) ;
surf(Prices,Position,Quantity)

Star Strider
Star Strider on 30 May 2022
I am not certain what result you want.
Try this —
Prices = rand(1,30); % Use Actual Vector
Position = rand(1,30); % Use Actual Vector
Quantity = rand(1,30); % Use Actual Vector
Prv = linspace(min(Prices), max(Prices), numel(Prices));
Psv = linspace(min(Position), max(Position), numel(Position));
[Pr,Ps] = ndgrid(Prv,Psv);
Qt = griddata(Prices(:),Position(:),Quantity(:),Pr,Ps);
figure
surfc(Pr, Ps, Qt)
grid on
xlabel('Prices')
ylabel('Position')
zlabel('Quantity')
.

Community Treasure Hunt

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

Start Hunting!