Изменить для ясности:
У меня две матрицы, п.валор 2х1000 и п.клас 1х1000. p.valor состоит из случайных чисел от -6 до 6. p.clase содержит по порядку 200 1:s, 200 2:s и 600 3:s. Чего я не хочу делать, так это
Напечатайте p.valor, используя разные цвета/подсказки для каждого класса, определенного в p.clase, как показано на следующем рисунке.
Я сначала написал это, чтобы узнать, какие места в p.valor представлены, где 1,2 соответствуют 3, где в p.clase
%identify the locations of all 1,2 respective 3 in p.clase
f1=find(p.clase==1);
f2=find(p.clase==2);
f3=find(p.clase==3);
%define vectors in p.valor representing the locations of 1,2,3 in p.clase
x1=p.valor(f1);
x2=p.valor(f2);
x3=p.valor(f3);
В p.valor 200 единиц (1), таким образом, x1=(1:200). Проблема в том, что каждое число один(1) (и, соответственно, 2 и 3) представляет ДВА элемента в p.valor, так как p.valor имеет 2 строки. Таким образом, несмотря на то, что p.clase и, следовательно, x1 теперь имеют только одну строку, мне нужно включить элементы в те же столбцы, что и все местоположения в f1.
Таким образом, различные альтернативы, которые я пробовал, еще не увенчались успехом. Примеры:
plot(x1(:,1), x1(:,2),'ro')
hold on
plot(x2(:,1),x2(:,2),'k.')
hold on
plot(x3(:,1),x3(:,2),'b+')
и
y1=p.valor(201:400);
y2=p.valor(601:800);
y3=p.valor(1401:2000);
scatter(x1,y1,'k+')
hold on
scatter(x2,y1,'b.')
hold on
scatter(x3,y1,'ro')
и
y1=p.valor(201:400);
y2=p.valor(601:800);
y3=p.valor(1401:2000);
plot(x1,y1,'k+')
hold on
plot(x2,y2,'b.')
hold on
plot(x3,y3,'ro')
Мои цифры имеют правильные оси, но нанесенные значения не соответствуют правильному представленному рисунку (см. начало вопроса).
Итак, мой вопрос: как мне включить значения во второй строке в p.valor в мою графическую фигуру?
Я надеюсь, что это яснее!