2015-11-18 3 views
1

У меня есть вектор данных, содержащий 1000 значений, таких какКак можно отобразить значение шкалы в оси х в MATLAB

data=[1,2,...1000] 

можно использовать участок, чтобы нарисовать всю информацию в графике. Однако он слишком велик. Таким образом, я масштабируется так, чтобы принимать только значение по индексу 1,5,10 .... 1000 этим кодом

index=0; 
for I=1:5:1000 
    index=index+1; 
    data_scale(index)=data(i); 
end 
plot(1:length(data_scale),data_scale); 

Моя проблема заключается в оси х будет не показывать фактическое значение от 1 до 1000. Он просто показывает от 1 до 200 (потому что 1000: 5). Я хочу, чтобы показать ось х, такие как 1: 50: 1000, например,

y_axis=[data(1), data(5),data(10)] 
Corresponding to 
x_axis=[1   50  100 ] 

Как я могу это сделать в MATLAB? Это мой текущий код

index=0; 
labels=[]; 
data_scale(1)=data(1) 
for i=1:1:1000 
    if(rem(i,5)==0) 
     index=index+1; 
     data_scale(index)=data(i); 
     if(rem(i,50)==0) 
     labels=[labels i]; 
     end 
    end 
end 
plot(1:length(data_scale),data_scale); 
set(gca, 'XTick', 1:length(labels),'FontSize', 12); % Change x-axis ticks 
set(gca, 'XTickLabel', labels); % Change x-axis ticks labels. 

ответ

2

Нет проблем. Просто измените свою сюжетную линию на:

plot(1:5:length(data_scale),data_scale); 

, так что вы говорите об этом поддискретизированные индексы. Это тоже не надо сказать MatLab в XTickLabel, если вы хотите, чтобы он х-значение, поэтому измените последние две строки:

set(gca, 'XTick', labels,'FontSize', 12); % Change x-axis ticks 

Там более простой способ субсемплировать хотя:

% SUBSAMPLE This is probably all you need 
x = 1:5:length(data); % The indices you want to use 
data_scale = data(x); % The subsampled data (this is called slicing) 
plot(x, data_scale); % Plot 

% OPTIONAL If you want to control the label positions manually 
labels = 1:50:length(data); % The labels you want to see 
set(gca, 'XTick', labels, 'FontSize', 12); % Optionally specify label position 
+0

Спасибо kmac для вашей помощи. –

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