Зачем кому-то возвращать матрицу в массиве в функции Matlab? - PullRequest
3 голосов
/ 24 марта 2011

Я довольно новичок в Matlab, но я смотрю на функцию, которая начинается так:

function [res] = process(input)

Внутри функции, которую они определяют res, сделайте что-нибудь с полями ввода и поместите результаты этих вещей в res. Мне интересно, что может быть причиной использования [] в объявлении функции вместо

function res = process(input)

, который я видел гораздо чаще. Может быть, если кто-то из вас скажет «поместить результат в массив - это хорошо, потому что тогда вы можете ...» Спасибо.

Ответы [ 2 ]

6 голосов
/ 24 марта 2011

Квадратные скобки требуются только при наличии нескольких выходов, т. Е.

function [res,other] = process(input)

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

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

1 голос
/ 24 марта 2011

Подумайте о ситуации с несколькими выходами, ни одна матрица не создана.
По сути, это правильный синтаксис Matlab. Подробнее здесь.

...