how to solve scatterplot error in matlab

2019-03-06 20:21发布

问题:

following is a part of the code I am writing,

for ii=1:length(k31)

B   = [k31(ii);k32(ii)];

X=abs( pinv(A)*B);

g1(ii)=X(1,:);

g2(ii)=X(2,:);

g3(ii)=X(3,:);

end

scatter(x(1:end-1), y(1:end-1), 5, g1);

But I am not able to plot the data, the error is as follows

??? Error using ==> scatter at 79

C must be a single color, a vector the same length as X, or an M-by-3 matrix.

x and y have the same dimensions as k31...but still it is showing such an error

回答1:

You are feeding scatter with 4 arguments: scatter(X, Y, S, C). Your error states:

C must be a single color, a vector the same length as X, or an M-by-3 matrix.

meaning that the fourth argument g1 does not have the same dimensions as the first argument.

What probably happened here is that you didn't re-initialize g1 before the loop, and so it retained its previous size. Put the following line before the for-loop:

g1 = zeros(size(k31));

and it should work.