2010-10-23 2 views
2

Я хотел бы построить дискретные значения в MATLAB, как это:Как настроить график дискретных функций в MATLAB?

stairs() и stem() делают подобные сюжеты, но я могу настроить один из них, чтобы посмотреть, как на картинке выше?

http://www.mathworks.com/help/techdoc/ref/plottype-stairs.gif http://www.mathworks.com/help/techdoc/ref/plottype-stem.gif

ответ

3

Вы должны создать сюжет самостоятельно.

%# create some random data 
data = randn(100,1); 

%# sort ascending 
data = sort(data(:)); %# make column vector, just in case 

%# count 
nData = length(data); 

%# create data to plot (open, closed circles) 
yData = linspace(0,1,nData-1)'; %'# SO formatting 

closedX = data(1:end-1); 
closedY = yData; 

openX = data(2:end); 
openY = yData; 

%# lines are from open to close with NaN for where there should be no line 
lineX = [closedX,openX,NaN(nData-1,1)]'; %'# SO formatting 
lineX = lineX(:); 
lineY = [closedY,openY,NaN(nData-1,1)]'; %'# SO formatting 
lineY = lineY(:); 

%# plot 
figure %# I like to open a new figure before every plot 
hold on 
plot(lineX,lineY,'r') 
plot(closedX,closedY,'ro','MarkerFaceColor','r') 
plot(openX,openY,'ro','MarkerFaceColor','w') 
+0

@ sekmet64: Да, я только что заметил. Я исправил это, а также несколько других ошибок. Теперь он работает нормально. – Jonas

+0

Ничего себе, спасибо! Это похоже на то, что я хотел. – sekmet64

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