首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Matlab中用匿名函数封装代码?

在Matlab中用匿名函数封装代码?
EN

Stack Overflow用户
提问于 2013-05-03 23:01:10
回答 1查看 274关注 0票数 0

我需要重复这段代码很多次。它是系统测试器的一部分。

代码语言:javascript
复制
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);
};

代码语言:javascript
复制
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之类的东西?这里的封装是创建新文件的唯一方法吗?

更新不起作用,有可能将其转化为执行?

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2013-05-03 23:02:51

匿名函数只能包含单个可执行语句。

所以在你的例子中,只需创建一个普通的M文件函数。

如果您感兴趣,在Loren的博客上有一系列文章介绍函数式编程风格,使用匿名函数来完成非简单的任务。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16368723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档