Редактировать для ясности:Matlab общая матрица индексации экранным несколько рядов
У меня есть две матрицы, p.valor 2x1000 и 1x1000 p.clase. p.valor состоит из случайных чисел, охватывающих от -6 до 6. p.clase содержит, 200, 1: s, 200 2: s и 600 3: s. То, что я wan't сделать это
печать p.valor используя цвет/с различной подсказкой для каждого Clase определяется в p.clase, как в следующем figure.
я сначала написал это, для того, чтобы выяснить, какие места в 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);
Существует 200 из них (1) в p.valor, таким образом, равен 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')
Моих фигуры имеют axisies права, но нанесенные на график значение не соответствует правильному рисунку при условии (см верхней части вопроса) ,
Ergo, мой вопрос: как мне включить значения во второй строке в p.valor в моем графике?
Я надеюсь, что это яснее!
Я добавил свой код к вопросу, чтобы вы могли видеть, как я пытался применить то, что вы сказали. Однако, когда я делаю это, я получаю цифру со всеми правильными значениями y, но только 1 и 2 для значений x. Моя фигура должна выглядеть примерно как [это] (http://imgur.com/NDfHWM4) – MatlabNoob
@MatlabNoob, если у вас есть панель инструментов статистики, вы должны проверить функцию gscatter – Dan