gpt4 book ai didi

matlab - 在 MATLAB 中使用匿名函数跳过输出

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:24 25 4
gpt4 key购买 nike

假设我想从返回两个输出的 m 文件函数创建一个匿名函数。是否可以设置匿名函数,使其只返回 m 文件函数的第二个输出?

示例:ttest2 返回两个输出,t/f 和概率。如果我想对 cellfun 使用 t 检验,我可能只对收集概率感兴趣,即我想写这样的东西

probabilities = cellfun(@(u,v)ttest2(u,v)%take only second output%,cellArray1,cellArray2)

最佳答案

anonymous function表达式中我怎么也不知道让它选择从具有多个可能输出参数的函数返回哪个输出。但是,当您评估 匿名函数时,您可以返回多个输出。这是一个使用函数 MAX 的示例:

>> data = [1 3 2 5 4];  %# Sample data
>> fcn = @(x) max(x); %# An anonymous function with multiple possible outputs
>> [maxValue,maxIndex] = fcn(data) %# Get two outputs when evaluating fcn

maxValue =

5 %# The maximum value (output 1 from max)


maxIndex =

4 %# The index of the maximum value (output 2 from max)

此外,处理上面给出的具体示例的最佳方法是实际使用 function handle @ttest2 作为 CELLFUN 的输入,然后从 CELLFUN 获取多个输出本身:

[junk,probabilities] = cellfun(@ttest2,cellArray1,cellArray2);

在较新版本的 MATLAB 上,您可以将变量 junk 替换为 ~忽略第一个输出参数。

关于matlab - 在 MATLAB 中使用匿名函数跳过输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3096281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com