2010-05-23 3 views
3

Итак, у меня есть вектор:шаг нецелых MATLAB индексирование

k = 1:100; 

И я хочу взять 19 элементов из него, которые примерно одинаково разнесенных. Так что я пишу это:

m = k(1:(99/18):end); 

Это прекрасно работает, для крошечных проблем, кроме:

Warning: Integer operands are required for colon operator when used as index 

m = 

    1  7 12 18 23 29 34 40 45 51 56 62 67 73 78 84 89 95 100 

Теперь я понимаю, почему это происходит, но я хотел бы избавиться от этого предупреждения. Есть ли «правильный» способ сделать это без предупреждения?

+0

Что именно вы имеете в виду под "примерно на равном расстоянии"? –

+0

Ну, вот, так как я хочу 19 элементов, я хочу 1: 5.5: end, чтобы получить эти элементы из массива. Например, предположим, что у меня есть функция, которую я хотел бы уменьшить с помощью нецелевого коэффициента. – rlbond

ответ

8

Попробуйте это:

floor(linspace(1,100,19)) 
+0

Ну, в реальной жизни K - это не просто линейный вектор. Однако, я полагаю, что 'm = k (floor (linspace (1, numel (k), 19))' довольно хорошо. – rlbond