Как внутри функции создать переменные, которые будут принимать 2 матрицы одинакового размера и скаляр? - PullRequest
0 голосов
/ 14 июля 2011
function[f] = get_f(y,Q,L)
Q = zeros(2)  % creating a 2x2 matrix of zeros
L = diag(zeros(2)) % creating a diagonal matrix
% still playing with how I can pull y in as a scalar, I'm thinking I have
% to assign it earlier in the script where I call this function.
f = expm((Q-L).^y).*L % execution of the function itself

Как сказать функции искать введенный скаляр и 2 матрицы одинакового размера, а затем выполнить указанную команду?

1 Ответ

0 голосов
/ 14 июля 2011

В вашей функции y - это то, что вы указали в качестве первого аргумента в вызове функции.

Например:

get_f(3.14, [1 2; 3 4], [1 0; 0 1])

вызывает функцию get_f с

  • y = 3.14
  • Q = [1 2; 3 4]
  • L = [1 0; 0 1]

чтобы ваша функция работала.

Однако, если вы хотите, чтобы ваша функция не выполнялась , если y не является скаляром или если Q и L не имеют одинаковый размер, вы можете добавить условие, подобное этому в начале вашей функции:

if ~isscalar(y)
    error('y must be a scalar')
end
if any(size(Q) ~= size(L))
    error('Q and L must have the same size')
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...