呼叫功能& Matlab / Octave中的脚本

时间:2014-11-05 12:41:37

标签: matlab octave

如何在Matlab / Octave中调用脚本到函数,反之亦然?

function mean_DNA_Microarray = Calc_mean_DNA_Microarray(M)
   M = DNA_Microarray 
   mean_DNA_Microarray = M - ones(5,25)*mean(M(:,25)) 
end 

回复是

  

错误:对脚本的调用无效   C:\ Users \ Nacho \ Documents \ Matlab \ DNA_Microarray.m错误:来自:   错误:C:\ Users \ Nacho \ Documents \ Matlab \ Calc_mean_DNA_Microarray.m at   第3行,第3栏

现在,如果我将DNA_Microarray称为函数,这将有效,但问题是它仍然是一个脚本。

1 个答案:

答案 0 :(得分:4)

首先,你没有正确定义你的函数,因为函数不知道M是什么(除非它是全局可修复的,但我对此表示怀疑)。

在任何编程语言中,您需要告诉函数它将使用哪些变量。这不是Matlab具体的。在Matlab中你会这样做:

function mean_DNA_Microarray = Calc_mean_DNA_Microarray(M)  % Look! we are telling him what M is!
    mean_DNA_Microarray = M - ones(5,25)*mean(M(:,25)) 
end

然后你想要来自其他地方的所有函数,只需键入它的名称并传入参数,在这种情况下,函数内部将调用{{1} }

M

请记住将函数保存为functionname.m,在您的情况下保存为DNA_Microarray.m,否则Matlab不会知道它是哪一个。

但我强烈建议你阅读一本关于Matlab的书或者一般的编程,因为看起来你可以从一些基本的介绍中受益。

按照@ am304建议,在这里你可以找到很好的教程:

http://www.mathworks.co.uk/academia/student_center/tutorials/

编辑您要做的是创建一个函数,如下所示:

clear;
clc;
% Test code
Mnameoutofthefunction=rand(100,100);
DNAmean = DNA_Microarray(Mnameoutofthefunction); % here we are calling it!

然后,在你的函数DNA_Microarray中用输入M调用Calc_mean_DNA_Microarray