Matlab объявляет массив - PullRequest
       3

Matlab объявляет массив

1 голос
/ 07 апреля 2011

Я хочу объявить array типа integer с именованной последовательностью.

После последовательности симуляции это будет выглядеть как [1,3,4,59.........n elements].Я не знаю значение n, поскольку это random integer.

Как я могу объявить последовательность как array типа int?Мне понравилось sequence= [1,1], но это не сработало, так как иногда только 1 элемент, а затем он имеет 2 вместо 1 элемента.

Ответы [ 4 ]

2 голосов
/ 07 апреля 2011

В тех случаях, когда вы не можете предварительно выделить массив (если вы не знаете заранее размер массива), вы можете использовать следующий метод:

sequence = [];
sequence(end+1) = 1;
sequence(end+1) = 3;
sequence(end+1) = 4;
...

Думайте об этом методе как о лечении sequence как C ++ std::vector и sequence(end+1) = 1 эквивалентно sequence.push_back(1).

2 голосов
/ 08 апреля 2011

Стандартный формат объявления массива:

foo = [];

, и вы можете установить любой элемент массива в любое время, и Matlab автоматически изменит размер. Например:

foo = [];
foo(4) = 1

выходы

foo = [ 0 0 0 1]

Если вы не знаете, сколько элементов должен содержать ваш массив, вы можете сделать то, что предлагает Джейкоб, и просто каждый раз изменять размер массива. Однако, если это вызывает узкие места в вашем коде (который вы можете найти с помощью инструмента профиля в Matlab), вы можете реже изменять размер и использовать значение заполнителя для еще неиспользованных элементов.

0 голосов
/ 28 апреля 2014
var=[ val1 val2 val3....valn]
for i=1:numel(var)
result=var(i)
end
0 голосов
/ 07 апреля 2011

Возможно, вы захотите взглянуть на функцию linspace( from, to, numberOfElements ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...