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只能被主函数和主函数中的其他子函数调用。