我需要重复这段代码很多次。它是系统测试器的一部分。
testFvB=@(fBE,fMCS,CI)
{
d='FV';
dF=strcat('testing/systemTestFiles/D_', fBE, '_', fMCS, '_', d, '.txt');
bepo(fBE,CI,fMCS,d,dF,oF);
d='B';
oF=strcat('testing/systemTestFiles/O_', fBE, '_', fMCS, '_', d, '.txt');
bepo(fBE,CI,fMCS,d,dF,oF);
};但
Error: File: systemTester.m Line: 3 Column: 6
The expression to the left of the equals sign is not a valid target for an
assignment.我不知道,但看来Matlab不接受这么大的匿名函数。那么,如何使用匿名函数来封装更大的代码,而不仅仅是doIt=@(x) x+1之类的东西?这里的封装是创建新文件的唯一方法吗?
更新不起作用,有可能将其转化为执行?
test=@(fBE,fMCS)for d=1:2
for CI=0:0.25:1
if d==1
d='FV';
else
d='B';
end
oF=strcat('testing/systemTestFiles/O_', fBE, '_', fMCS, '_', d, '.txt');
bepo(fBE,CI,fMCS,d,dF,oF);
end
end;
fBE='TestCase1 BE Evendist v2.txt';
fMCS='TestCase1 MCS.txt';
test(fBE,fMCS)发布于 2013-05-03 23:02:51
匿名函数只能包含单个可执行语句。
所以在你的例子中,只需创建一个普通的M文件函数。
如果您感兴趣,在Loren的博客上有一系列文章介绍函数式编程风格,使用匿名函数来完成非简单的任务。
https://stackoverflow.com/questions/16368723
复制相似问题