Plot3 with different length of vectors

I have 3 parameter. Error, SNR, Weights
1. Error is a 3x9 data
2. SNR = [15,30,50]
3. Weights = 0.1:0.1:0.9
So basically, i want to see the evolution of my error with respect to the weight and SNR
I have done this with surf. but I want to try plot3, unfortunaley it doesnt work when length of vectors are unequal. is there a work around this?

 Accepted Answer

Adam Danz
Adam Danz on 9 Jan 2019
Edited: Adam Danz on 9 Jan 2019
You need to specify the x (SNR) and y (Weight) coordinate for each z-value (error). Since z is a matrix, x and y need to be matricies of the same size.
SNR = repmat([15 30 50]', 1, size(error,2)); %note the transpose
Weight = repmat(0.1 : 0.1 : 0.9, size(error,1),1);
plot3(SNR, Weight, error)

3 Comments

Thanks a lot. it works like magic. Although visually not so nice looking. Any tips on improving graphics maybe? :)
untitled.jpg
I'm not sure what you're expecting. plot3() draws a line for each column of data in the inputs.
Are you lookng for a surface plot?
surf(SNR, Weight, error)
Or are you looking for a continuous line?
plot3(SNR(:), Weight(:), error(:))
You right it looks good with Surf. Thanks mate!.

Sign in to comment.

More Answers (0)

Asked:

on 9 Jan 2019

Commented:

on 9 Jan 2019

Community Treasure Hunt

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

Start Hunting!