如何在 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
响应是
error: invalid call to script C:\Users\Nacho\Documents\Matlab\DNA_Microarray.m error: called from: error: C:\Users\Nacho\Documents\Matlab\Calc_mean_DNA_Microarray.m at line 3, column 3
现在,如果我调用 DNA_Microarray
函数,这将起作用,但问题要求它保留为脚本。
最佳答案
首先,您没有正确定义函数,因为该函数不知道 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
然后,您想要从其他地方获取所有函数,您只需输入其名称并传入参数,在这种情况下,函数内部的名称将被称为M
clear;
clc;
% Test code
Mnameoutofthefunction=rand(100,100);
DNAmean = DNA_Microarray(Mnameoutofthefunction); % here we are calling it!
记住将函数保存为 functionname.m ,在您的例子中为 DNA_Microarray.m ,否则 Matlab 将不知道它是哪一个。
但我强烈建议您阅读一本有关 Matlab 或一般编程的书,因为看起来您可以从一些基本介绍中受益。
按照@am304的建议,在这里您可以找到不错的教程:
http://www.mathworks.co.uk/academia/student_center/tutorials/
编辑您想要做的是创建一个函数,如下所示:
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
然后,在函数 DNA_Microarray 中使用输入 M 调用 Calc_mean_DNA_Microarray
关于matlab - 在 Matlab/Octave 中调用函数和脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26757466/