В настоящее время у меня есть векторы меток Y, которые описывают каждый столбец моей матрицы данных X. Например, если Y = 1, то X имеет первый класс. Я пытаюсь построить X как другой цвет (или форму), основанный на значении Y. Есть ли более быстрый способ сделать это, чем мой код ниже? В настоящее время я использую цикл for, который занимает некоторое время, когда я использую большое количество данных.В Matlab, что самый быстрый способ присвоить разные значения меток при построении графика
n = size(Y);
for i = 1:n(2)
if Y(i) == 1
colour = 'y';
shape = 'c';
elseif Y(i) == 2
colour = 'm';
shape = 'c';
elseif Y(i) == 3
colour = 'c';
shape = 'c';
elseif Y(i) == 4
colour = 'r';
shape = 'c';
elseif Y(i) == 5
colour = 'g';
shape = 'c';
elseif Y(i) == 6
colour = 'b';
shape = 'c';
elseif Y(i) == 7
colour = 'k';
shape = 'c';
elseif Y(i) == 8
colour = 'r';
shape = 's';
elseif Y(i) == 9
colour = 'b';
shape = 's';
elseif Y(i) == 10
colour = 'g';
shape = 's';
end
subplot
scatter(X(1,i), X(2,i), 12, colour, shape, 'filled')
hold on
end
Awesome, но как это определить, какие Y нумеруют координаты X соответствуют? – user3457834
@ user3457834 Вы правы, я был слишком быстр в ответе. Я обновил свой ответ, надеюсь, теперь он должен работать. – am304
О, я вижу, большое спасибо! – user3457834