Я хотел бы знать, как переопределить внутреннюю функцию с переменной, определенной в рабочей области в Matlab R2015a при запуске файла m.Matlab: как переопределить внутреннюю функцию с переменной в рабочей области
Я имею в виду, если я определяю:
function test
fun1
clear input
load test
plot(input)
return
function fun1
input=1:10;
save('test.mat','input')
return
и я бег теста, то я получаю:
Error using input
Not enough input arguments.
Error in test (line 8)
plot(input)
Matlab принимает входной сигнал в качестве встроеных функций.
Вы знаете, как это решить (без изменения имени переменной)?
Спасибо.
Вы никогда не должны перезаписать встроенную функцию. (Чтобы избежать такой ошибки) – obchardon
Но если вы создаете переменную или новый .m-файл, который как точное имя встроенной функции, эта встроенная функция будет «перезаписываться». – obchardon
@obchardon Я не согласен. Это абсолютно не проблема, если вы знаете, что делаете, например, при перегрузке операторов для пользовательских классов ('plus()' и т. Д.). MATLAB даже предоставляет функцию ['builtin'] (https://www.mathworks.com/help/matlab/ref/builtin.html) (« _Execute встроенная функция из перегруженного метода »), чтобы вызвать исходную версию, когда это необходимо , || cardogar - это плохая практика «запускать переменные в существование», используя «load». Гораздо лучший подход - «A = load (...); var = A.someName', который менее запутан как для mlint, так и для людей. –