如何在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
称为函数,这将有效,但问题是它仍然是一个脚本。
答案 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