2013-05-12 6 views
-2

Мне просто нужен совет относительно функции Matlab, больше для подтверждения. Я делаю это правильно.
Вот мой код.Замедление функции в matlab

function [output] = myfunc(input1, input2); 

output = input1 * input2; 

Тогда я вызываю функцию в моей основной код, как показано ниже:

res = myfunc(10, 20); 
disp(res); 

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

+2

Все в порядке. Он будет работать, даже если вы вызываете его с помощью 'res'. 'output' - это только временная переменная. Я не думаю, что это требует ответа. –

+2

Если вы не уверены, тогда ПОПРОБУЙТЕ! Это лучший способ узнать. Играйте с MATLAB. – 2013-05-12 17:52:08

ответ

1

output и output1 - это разные переменные, и MATLAB ничего не вернет с myfunc.

Если вы спрашиваете о res, да, нет проблем при использовании другого имени переменной. Вы присваиваете возвращаемое значение новой переменной с именем res. (Хотя он может находиться в том же месте памяти ...)

1

res = myfunc(10, 20): должен быть res = myfunc(10, 20); и output = input1 * input2; должны быть output1 = input1 * input2;

Так что ваша функция будет выглядеть следующим образом:

function [output1] = myfunc(input1, input2) 
output1 = input1 * input2; 
end 
+0

Только что заметил мои ошибки, исправил их. – user1978826

1

выходные параметры должны имеют то же имя, что и в коде функции, например:

function [output1] = myfunc(input1, input2); 

output1 = input1 * input2; 

В противном случае при вызове res = myfunc(10, 20); вы получите сообщение об ошибке, такое как: Output argument "output1" (and maybe others) not assigned during call to "myfunc.m>myfunc".

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