2015-09-22 4 views
0

я нашел следующий вызов функции:В чем смысл [] в аргументе функции matlab?

reshape(A, 1, []) 

Это сглаживает матрицу А Колум майор. Я пытаюсь понять вызов. Документация функции говорит, что после A должен быть вектор размера для перестроенной матрицы, но здесь есть один, за которым следует [] вместо двух-вектора. Является ли это способом сказать «Делайте все, что требуется, чтобы матрица имела один ряд, мне все равно, что такое ширина»?

Почему Matlab позволяет вам обменять один аргумент на два, как это? Я попробовал погулять и не нашел объяснений, и я хочу понять, что здесь происходит.

ответ

6

[] - пустая матрица. Во многих встроенных функциях MATLAB пустая матрица интерпретируется как означающая «использовать аргумент по умолчанию здесь» или «автоматически определять это значение». Иногда он используется для устранения двузначных значений функции, как и для функции max, где max(A,2) сравнивает каждый элемент A с 2 и возвращает больше, а max(A,[],2) находит наибольший элемент каждой строки.

Если вы читали help for reshape, вы увидите следующее:

Вы можете указать один Размерность [] иметь размер размер рассчитывается автоматически, таким образом, что число элементов в B соответствует номеру элементов в A. Например, если A является матрицей 10 на 10, то reshape(A,2,2,[]) преобразует 100 элементов A в массив 2 на 2 на 25.

+0

Спасибо, должно быть, пропустили его там. – Bloodworth

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