2013-07-02 1 views
0
argument = [new_letter_A, new_letter_B, new_letter_C, new_letter_D, new_letter_E]; 

В Python я могу использовать len (аргумент), чтобы найти количество элементов в массиве выше. Есть ли простой способ сделать то же самое в MATLAB? (Я хочу, чтобы это вернуло «5».) Спасибо.Количество элементов в списке MATLAB

+0

На самом деле, каждая переменная new_letter является вектором 1x703, поэтому длина не будет работать для этого случая ... Я хочу вернуть количество массивов букв. @ mathematician1975 –

ответ

3

Вы должны либо хранить векторы как строки и получить размер первого измерения

argument = [new_letter_A; new_letter_B; new_letter_C; new_letter_D; new_letter_E]; 
size(argument, 1) 

Или вы можете хранить каждый вектор в клетке в ячейке

argument = {new_letter_A, new_letter_B, new_letter_C, new_letter_D, new_letter_E}; 
length(argument) 

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

0

Используйте length функцию:

length(argument)

+0

'length' - плохое решение (и я на 99% уверен, что он не сработает для этого вопроса), поскольку он оставляет вас открытым для многих ошибок, которых можно избежать, указав, какое измерение вы хотите иметь размер. Я бы ВСЕГДА рекомендовал использовать 'size' над' length' – Dan

0

Есть много способ сделать это, например numel, length и size. MATLAB работает с 2d массивами/матрицами.

Если матрица n x m:

  • numel будет п * м
  • length будет не более (п, т)
  • size будет н. Вы можете использовать size (аргумент, 2), чтобы получить m.

В случае 1-мерного массива они все одинаковы.