plotData does not plot anything

조회 수: 3 (최근 30일)
Ivan Panshin
Ivan Panshin 2017년 1월 6일
댓글: Ujval Madhu 2021년 11월 4일
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
Ivan Panshin
Ivan Panshin 2017년 1월 6일
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 2021년 11월 4일
@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.

댓글을 달려면 로그인하십시오.

답변 (4개)

Geoff Hayes
Geoff Hayes 2017년 1월 6일
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
Geoff Hayes
Geoff Hayes 2017년 1월 6일
Ivan - please attach the relevant code. I'm reluctant to open a zip file. :)
haoran wan
haoran wan 2020년 9월 29일
Use plot replace plotData, Because this is matlab rather than Octave

댓글을 달려면 로그인하십시오.


Anthony Garber
Anthony Garber 2018년 2월 2일
편집: Anthony Garber 2018년 2월 2일
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
Andrea Sbaragli
Andrea Sbaragli 2020년 9월 21일
same problem... X unrecognized..
Image Analyst
Image Analyst 2020년 9월 21일
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.

댓글을 달려면 로그인하십시오.


Image Analyst
Image Analyst 2017년 1월 6일
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 2019년 10월 10일
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');

카테고리

Help CenterFile Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by