我需要多次重复此代码。它是系统测试人员的一部分。
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)
答案 0 :(得分:3)
匿名函数只能包含一个可执行语句。
所以在你的情况下,只需创建一个常规的M文件函数。
如果您有兴趣,Loren Shure的博客中会有一系列articles介绍函数式编程风格,使用匿名函数执行非简单任务。