2014-12-18 3 views
-1

У меня есть много мелких функций в Matlab, можно ли их поместить в один файл, чтобы моя работа выглядела яснее?очистка многих функций MATLAB в одном файле

я пытался писать небольшой скрипт, а затем добавить функции, но это не работает

любая идея о том, как сделать это сделать?

+1

Не могли бы вы поделиться своим сценарием? – Schorsch

ответ

4

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

Если вы получаете доступ только к «маленьким» функциям внутри одной другой функции, вы можете поместить небольшие функции в файл другой функции, но тогда они доступны только для этой функции. Это называется локальными функциями в MATLAB. Например у вас есть файл с test.m:

function x=test(y,z) 
    x = add(y,z) 
end 

function a=add(b,c) 
    a = b + c; 
end 

Вы можете только использовать add внутри test, но вы можете использовать test так же, как обычно.

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

addpath('subfolder'); 
+0

thats sad, can not понять, почему они сделали это таким образом, но ok ty – JohnnyF

1

Если у вас есть функция файл, вы можете добавить другие функции в этом файле.

Если у вас есть сценарий, вы не можете добавлять к нему функции.

Обратите внимание, что если вы поместите функцию в файл, вы не сможете получить доступ к функциям непосредственно из-за пределов своей «основной» функции.


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

Extra

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

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