2013-11-11 4 views
0

У меня есть матрица Nx62 с N 62-D векторами и вектор NX1 с метками для векторов. Я пытаюсь построить эти векторы с помощью своих меток, потому что я хочу видеть поведение этих классов при построении в 62-мерном пространстве. Векторы относятся к трем классам в соответствии с метками вектора NX1, приведенным ранее.Графические векторы с метками в matlab

Как это сделать в Matlab? когда я делаю график (вектор, классы), результат очень странный, чтобы анализировать, как помещать метки в график?

кода я использую, чтобы получить этикетки, векторы и построение заключается в следующем:

%labels is a vector with labels, vectors is a matrix where each line is a vector 
[labels,vectors]=libsvmread('features-im1.txt'); 

, когда я сюжет трехмерного вектора прост

a=[1,2,3] 
plot(a) 

, а затем я получаю результат

Simple plot

, но теперь у меня есть набор векторов и набора меток, и я хочу видеть их распределение, я хочу построить каждую из этих меток, но также хочу определить их классы. Как это сделать в Matlab?

EDIT: Этот код почти работает. Проблема заключается в том, что для каждого вектора и класса сюжет присваивает цвет. Я просто хочу три цвета и три ярлыка, по одному на класс.

[class,vector]=libsvmread('features-im1.txt'); 
%the plot doesn't allow negative and 0 values in the label 
class=class+2; 
labels = {'class -1','class 0','class 1'}; 
h = plot(vector); 
legend(h,labels{class}) 
+1

Покажите нам код для черчения. Как вам удалось визуализировать 62-мерное пространство? – Dan

+0

@ Dan: Я бы тоже хотел увидеть 62-мерное пространство! –

+0

Прошу прощения. Я знаю, что трудно увидеть 62-мерное пространство :-). У меня есть набор векторов, принадлежащих к классам 1, -1 и 0. Я подозреваю, что векторы из классов очень похожи, и я хочу это подтвердить. Как это сделать? – mad

ответ

1

Если я правильно понимаю, это делает то, что вы хотите:

N = 5; 
classes = [1 2 3 1 2]; % class of each vector. Size N x 1 
colors = {'r', 'g', 'b'}; % you can also define them numerically 
matrix = rand(N,62); % example data. Size N x 62 
labels = {'class 1','class 2','class 3'}; % class names. Size max(classes) x 1 
h = plot(matrix.'); 
h_first = NaN(1,3); % initialization 
for k = 1:max(classes) 
    ind = find(classes==k); 
    set(h(ind), 'color', colors{k}) % setting color to all plots of a given class 
    h_first(k) = h(ind(1)); % remember a handle of each color (for legend) 
end 
legend(h_first,labels) 
+0

Спасибо за ваш ответ. Но является ли эта часть кода комментарием? 'имена классов. Размер max (классы) x 1 ' – mad

+0

@mad Да, извините. Исправлено –

+0

Можете ли вы увидеть мое редактирование? Спасибо. – mad

Смежные вопросы