plotData does not plot anything
조회 수: 3 (최근 30일)
이전 댓글 표시
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
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
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
2017년 1월 6일
Ivan - please attach the relevant code. I'm reluctant to open a zip file. :)
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
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
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);
댓글 수: 0
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');
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!