Matlab可以调用R中的函数吗?

Python013

Matlab可以调用R中的函数吗?,第1张

我不用R,所以机器上没有这个环境但是我搜了R的命令行支持的格式http://stat.ethz.ch/R-manual/R-devel/library/utils/html/BATCH.html所以在MATLAB里面你可以这样调用system('R

CMD

BATCH

infile

')infile是你要运行的R函数或者脚本你的函数或者脚步需要输出一些文本作为结果在MATLAB中用fopen,fscanf之类的函数去阅读结果文件调用system命令,MATLAB会等该命令运行完毕然后再执行下一行,所以不会有race出现请你:

试试上面我的建议,并且如果成果了,或者有什么新的经验,回这个帖子,以方便以后的用户搜索。谢谢

在matlab中,如果是matlab自带的函数,则可以按照该函数的格式直接调用,如果是自己编写的函数,可以将函数写在一个文件中,之后再主文件中调用。举例说明如下:

%

文件名为fun.m(注意:文件名需要与函数名一致)

function

y

=

fun(x)

y

=

x.^2

下面开始编写主文件(文件名为main.m),并调用函数文件fun.m中的函数fun。

情况1:函数文件fun.m和主文件main.m在同一目录下,此时直接调用即可。

a

=

[1,

2,

3]

b

=

fun(a)

%

运行后,b=[1,

4,

9]

情况2:函数文件fun.m和主文件main.m在不同一目录下,此时需要将函数文件包含进来才可以调用fun函数。

addpath('directory')

%

其中,directory是函数文件fun.m的路径

a

=

[1,

2,

3]

b

=

fun(a)

%

运行后,b=[1,

4,

9]

matlab中调用matlab中已有的函数二种方法:

% 调用函数文件:myfile.m

clear

clc

for t=1:10

y=mylfg(t)

fprintf(‘M^(1/3)=%6.4f\n’,t,y)

end

%自定义函数文件: mylfg.m

function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致

Y=x^(1/3)

注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。

%命令文件:funtry2.m

function []=funtry2()

for t=1:10

y=lfg2(t)

fprintf(‘M^(1/3)=%6.4f\n’)

End

function y=lfg2(x)

Y= x^(1/3)

%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。