Как завершить определения функций MATLAB / Octave? - PullRequest
0 голосов
/ 06 июля 2018

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

MATLAB , кажется, завершает свои функции с end.

function y = average(x)
  y = sum(x)/length(x); 
end

Октава завершает свои функции с endfunction.

function retval = avg (v)
  retval = sum (v) / length (v);
endfunction

Тем не менее, мои функции прекрасно работают без каких-либо ключевых слов в конце функции.

Итак, мой вопрос, насколько строги MATLAB / Octave с окончаниями определений функций.

1 Ответ

0 голосов
/ 06 июля 2018

endfunction

  • endfunction специфичен для Octace, это недопустимый синтаксис MATLAB (то же самое относится к endfor и т. Д.) *
  • Если вы знаете, что код будет выполняться только в Octave, этот синтаксис может сделать сравнение ваших циклов / функций / ... более четким и быстрым. Просто знайте, что ваш код несовместим с MATLAB.
  • Полагаю, вы также можете просто использовать end в Octave для совместимости.

Строгость использования end

Возможно, вы захотите прочитать документацию MATLAB для вложенных функций

Таким образом, в функциональном файле с единственной функцией, краткий ответ "совсем не строг". Однако рекомендуется использовать end, поэтому при добавлении других локальных функций будет меньше двусмысленности и больше гибкости.

...