在函数中,如何创建可接受2个大小相同的矩阵和标量的变量?

时间:2011-07-14 00:46:35

标签: matlab

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 :(得分:0)

在你的函数中,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不是标量,或者QL的大小不同,你可以在函数的开头添加这样的条件:

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