matlab函数定义出错

时间:2015-04-06 06:19:15

标签: matlab

这是我的代码,我尝试编写一个matlab函数,它将矩阵作为输入并返回矩阵作为输出。

a=[ 1 2 3; 4 5 6; 7 8 9];
function [s]= try_1(a)
  %takes a matrix as a input
   display(' data matrix');
   disp(a);
   disp('dimension of the matrix');
   [m n]= size(a); %calculate the dimension of data matrix
   s = mean(a);
end

2 个答案:

答案 0 :(得分:3)

您无法在脚本中定义函数。 MATLAB假定您的文件是脚本,因为它以a=[ 1 2 3; 4 5 6; 7 8 9];开头 - 即通过定义变量。因此,MATLAB假定遵循一系列指令并在看到函数定义时抛出错误。

您还必须区分函数定义和函数调用。使用上面的代码,即

function s = try_1(a)
...
end

你定义了函数的功能(函数 definition ),但你调用它,即没有任何反应。对于要发生的事情,你必须通过

来调用它
a=[ 1 2 3; 4 5 6; 7 8 9];
s = try_1(a);

在脚本或工作区中。

关于文件名以及每个文件中的内容:函数在MATLAB中通过文件名标识。在名为try_1()的文件中使用函数try_1.m是绝对必要的。而且这个文件不能包含任何其他内容。 a=[ 1 2 3; 4 5 6; 7 8 9];和函数调用属于一个单独的脚本(或者只是在命令窗口中测试行为)。

答案 1 :(得分:0)

清楚解释执行上述代码的位置? 如果在命令提示符下执行,请不要使用函数。代码喜欢这个

  a=[ 1 2 3; 4 5 6; 7 8 9];
  %takes a matrix as a input
   display(' data matrix');
   disp(a);
   disp('dimension of the matrix');
   [m n]= size(a); %calculate the dimension of data matrix
   s = mean(a);

或者如果您没有使用命令提示符,则将值" a" 放在另一个函数中,并从您创建的新函数中调用 try_1 函数。像这样的代码

function parent()
a=[ 1 2 3; 4 5 6; 7 8 9];
s= try_1(a)
end  

function [s]= try_1(a)
      %takes a matrix as a input
       display(' data matrix');
       disp(a);
       disp('dimension of the matrix');
       [m n]= size(a); %calculate the dimension of data matrix
       s = mean(a);
end

或在 try_1 函数中指定值。像这样的代码

function [s]= try_1(a)
a=[ 1 2 3; 4 5 6; 7 8 9];
  %takes a matrix as a input
   display(' data matrix');
   disp(a);
   disp('dimension of the matrix');
   [m n]= size(a); %calculate the dimension of data matrix
   s = mean(a);
end