plotData does not plot anything

3 visualizaciones (últimos 30 días)
Ivan Panshin
Ivan Panshin el 6 de En. de 2017
Comentada: Ujval Madhu el 4 de Nov. de 2021
I'm trying to plot a set of points in Matlab using plotData function, but the figure window is empty. Moreover, the plot function works correctly, I only have issues with the plotData function. Here is my code:
x = [1;2;3;4;5]
y = x.^2
plotData(x,y)
MATLAB Version: 9.1.0.441655 (R2016b) Operating System: Mac OS X Version: 10.10.5 Build: 14F27
  3 comentarios
Ivan Panshin
Ivan Panshin el 6 de En. de 2017
Hm, interesting. I found this function in the files for my homework assignment from machine learning class. It said that I can use either matlab of octave. And yeah, I can't find this function in the documentation as well.
Ujval Madhu
Ujval Madhu el 4 de Nov. de 2021
@Ivan Panshin it seems the function to use is plot(x,y) for plotting rather than plotData - which is a function we create in the homework which makes use of 'plot' method to get the 2d-plot of the data.

Iniciar sesión para comentar.

Respuestas (4)

Geoff Hayes
Geoff Hayes el 6 de En. de 2017
Ivan - if you are using the plotData function from https://github.com/zhouxc/Stanford-Machine-Learning-Course/blob/master/Logistic%20Regression/mlclass-ex2/plotData.m, then I observe the following errors when running your code
Index exceeds matrix dimensions.
Error in plotData (line 14)
plot(X(pos , 1) , X(pos , 2) , 'k+' , 'LineWidth' , 2 , 'MarkerSize' , 7);
The function seems to assume that the second input parameter y consists of ones and zeros for positive and negative elements of x. Also, the code assumes that x is a Mx2 matrix.
  3 comentarios
Geoff Hayes
Geoff Hayes el 6 de En. de 2017
Ivan - please attach the relevant code. I'm reluctant to open a zip file. :)
haoran wan
haoran wan el 29 de Sept. de 2020
Use plot replace plotData, Because this is matlab rather than Octave

Iniciar sesión para comentar.


Anthony Garber
Anthony Garber el 2 de Feb. de 2018
Editada: Anthony Garber el 2 de Feb. de 2018
Just in case anyone stumbles across this in the future... plotData is a function created in a .m file included in the classes homework download. It simply opens a figure:
function plotData(x, y)
%PLOTDATA Plots the data points x and y into a new figure
% PLOTDATA(x,y) plots the data points and gives the figure axes labels of
% population and profit.
figure; % open a new figure window
% ====================== YOUR CODE HERE ======================
% Instructions: Plot the training data into a figure using the
% "figure" and "plot" commands. Set the axes labels using
% the "xlabel" and "ylabel" commands. Assume the
% population and revenue data have been passed in
% as the x and y arguments of this function.
%
% Hint: You can use the 'rx' option with plot to have the markers
% appear as red crosses. Furthermore, you can make the
% markers larger by using plot(..., 'rx', 'MarkerSize', 10);
% ============================================================
end
  2 comentarios
Andrea Sbaragli
Andrea Sbaragli el 21 de Sept. de 2020
same problem... X unrecognized..
Image Analyst
Image Analyst el 21 de Sept. de 2020
His code said
X = data(:, 1); y = data(:, 2);
m = length(y); % number of training examples
% Plot Data
% Note: You have to complete the code in plotData.m
plotData(X, y);
So it couldn't say X was unrecognized. If data is there, then it would have X. If data were not available then it would complain about data, not X.

Iniciar sesión para comentar.


Image Analyst
Image Analyst el 6 de En. de 2017
Try plot() instead of plotData:
plot(x, y, 'k+-' , 'LineWidth' , 2 , 'MarkerSize' , 7);
grid on;
xlabel('X', 'FontSize', 20);
ylabel('Y', 'FontSize', 20);

N/A
N/A el 10 de Oct. de 2019
From the comments, I understand that 'plotData.m' intends to plot the classification data where X indicates the location of a point and y corresponds to the classification of the said point (either 0 or 1). One can then use a simple code (attached herein) to separate the two classes and then plot them individually.
Hope it helps...
X_pos=X(y==1,:);
X_neg=X(y==0,:);
plot(X_pos(:,1),X_pos(:,2),'k+');
plot(X_neg(:,1),X_neg(:,2),'ko');

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by