如何在 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
Run Code Online (Sandbox Code Playgroud)
回应是
错误:无效调用脚本 C:\Users\Nacho\Documents\Matlab\DNA_Microarray.m 错误:调用自:错误:C:\Users\Nacho\Documents\Matlab\Calc_mean_DNA_Microarray.m 第 3 行,第 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
Run Code Online (Sandbox Code Playgroud)
然后你想从其他地方调用所有函数,你只需要输入它的名称并传入参数,在这种情况下,函数内部将被调用M
clear;
clc;
% Test code
Mnameoutofthefunction=rand(100,100);
DNAmean = DNA_Microarray(Mnameoutofthefunction); % here we are calling it!
Run Code Online (Sandbox Code Playgroud)
请记住将函数保存为 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
Run Code Online (Sandbox Code Playgroud)
然后,在您的函数 DNA_Microarray 中,使用输入 M 调用 Calc_mean_DNA_Microarray
| 归档时间: |
|
| 查看次数: |
11190 次 |
| 最近记录: |