2014-12-11 3 views
0

У меня есть два массива, пусть это можно назвать theArray1 theArray2 из N в этом формате:Как построить вертикальную линию строки в MATLAB

5 13 20 .. 
bloladsa adsad rwerds .. 

и я хочу, чтобы добавить к моему сюжету вертикальной линии на { 5,13,20, ..} значения X и что строки

в том же значении X будет написано скажем на нижней части линии (действительно не заботятся о месте)

Я не даже есть идея, как это сделать, поэтому нет кода для отображения

редактировать вертикальные линии рисую с:

hx = graph2d.constantline(theArray1, 'LineStyle',':', 'Color',[.7 .7 .7]); 
changedependvar(hx,'x'); 

Теперь я просто нужно добавить текст в тех местах

+1

Вы говорите, что вы хотите напечатать строку 'blablavla' в положении' 5', 'kikokiko' в положении' 13' и нарисовать вертикальную линию на этих позициях? – kkuilla

+0

У вас есть массив, а не ячейка? – kkuilla

+0

Вы правы, я изменил вопрос, thx – JohnnyF

ответ

1

Вы можете сделать это:

A={5, 'blablavla'; 13,'kikokiko';20,'bibobibo'} 
lengthOfLine = 10; 
for n=1:size(A,1) 
    x = repmat(A{n,1},[1,lengthOfLine]); 
    y = 1:lengthOfLine; 
    plot(x,y) 

    text(x(1)+0.1,y(1)+0.1,A{n,2}) 
    hold on 
end  
hold off 

% Adjust the axis so that the lines are more visible 
axis([0 25 0 15]) 

enter image description here


Подробнее

Loop через ваши пункты

for n=1:size(A,1) 

Генерация x и y значения. Важно то, что x и y имеют одинаковую длину. Мы используем repmat для повторения значения, например, десять раз.

x = repmat(A{n,1},[1,lengthOfLine]); 
y = 1:lengthOfLine; 

Пример вывода будет

x = [ 20 20 20 20 20 20 20 20 20 20]; 
y = [ 1 2 3 4 5 6 7 8 9 10]; 

Это будет рисовать вертикальные линии, а х = 20.

Постройте x и y.

plot(x,y) 

Добавить текст в сюжет. Координаты текста будут относиться к системе координат, поэтому я добавляю 0.1 к первому значению x x (1), чтобы текст отображался справа от строки.

text(x(1)+0.1,y(1)+0.1,A{n,2}) 
hold on 

Настройте ось так, что линии более заметны

axis([0 25 0 15]) 
+0

thx, но, как я добавил, лучше использовать hx = graph2d.constantline (theArray1, 'LineStyle', ':', 'Color', [. 7. 7 .7]); changedependvar (hx, 'x'); , и я попробую текстовую часть от вашего ans – JohnnyF

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