Я довольно новичок в Octave \ MatLab , и, следуя руководству, я обнаруживаю некоторые трудности, пытаясь понять, как именно работает эта plot () версия функции.
Итак, у меня следующая ситуация:
У меня есть такой файл данных:
34.62365962451697,78.0246928153624,0
30.28671076822607,43.89499752400101,0
35.84740876993872,72.90219802708364,0
60.18259938620976,86.30855209546826,1
79.0327360507101,75.3443764369103,1
45.08327747668339,56.3163717815305,0
Где строка относится к конкретному ученику.
- Первое значение - это голос студента с оценкой exame-1.
- Первое значение - это голос студента с оценкой exame-2.
- третье значение может быть только 0 или 1 (1 означает, что студент был принят в университет, 0 означает, что студент не был принят в университет)
Тогда у меня есть этот код, который загружает и отображает эту информацию в виде графика:
![enter image description here](https://i.stack.imgur.com/6YTuS.png)
Это код, который загружает предыдущие данные из текстового файла:
%% Initialization
clear ; close all; clc
%% Load Data
% The first two columns contains the exam scores and the third column
% contains the label.
data = load('ex2data1.txt');
X = data(:, [1, 2]); y = data(:, 3);
%% ==================== Part 1: Plotting ====================
% We start the exercise by first plotting the data to understand the
% the problem we are working with.
fprintf(['Plotting data with + indicating (y = 1) examples and o ' ...
'indicating (y = 0) examples.\n']);
plotData(X, y);
% Put some labels
hold on;
% Labels and Legend
xlabel('Exam 1 score')
ylabel('Exam 2 score')
% Specified in plot order
legend('Admitted', 'Not admitted')
hold off;
В конце вызывать функцию plotData (X, y); , определенную в другом файле, передавая его X (матрица оценок учеников для экзамена-1 и экзамена-2 ** и y (вектор, который говорит, прошло ли это обучение или нет университетский выбор):
function plotData(X, y)
%PLOTDATA Plots the data points X and y into a new figure
% PLOTDATA(x,y) plots the data points with + for the positive examples
% and o for the negative examples. X is assumed to be a Mx2 matrix.
% Create New Figure
figure; hold on;
% ====================== YOUR CODE HERE ======================
% Instructions: Plot the positive and negative examples on a
% 2D plot, using the option 'k+' for the positive
% examples and 'ko' for the negative examples.
%
% Find Indices of Positive and Negative Examples
pos = find(y==1);
neg = find(y == 0);
% Plot Examples
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ...
'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y', ...
'MarkerSize', 7);
Для меня совершенно ясно, что он делает, единственное, чего я не понимаю, это последние две строки, на которых приведены примеры:
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ...
'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y', ...
'MarkerSize', 7);
Мои сомнения:
Что точно представляет параметры 'k +' и ko , переданные этой функции plot () ? Я думаю, что k + отображает символ + , а ko отображает символ круга на предыдущем графике. Но я абсолютно не уверен в этом утверждении, потому что здесь я не могу найти информацию об этом: https://octave.org/doc/v4.0.0/Two_002dDimensional-Plots.html
Почему в положительном случае используется параметр LineWidth , а в отрицательном случае я использую MarkerFaceColor ?
Почему в каждом из этих 2 сюжетных линий переносится символ ... ?
сюжет (X (pos, 1), X (pos, 2), 'k +', 'LineWidth', 2, ...
'MarkerSize', 7);
Что эти ... точно означают? Я попытался поместить все в одну строку следующим образом:
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ... 'MarkerSize', 7);
но при этом Октава разбивается, и выполнение останавливается. Зачем? Чего мне не хватает?