【发布时间】:2016-10-27 05:50:02
【问题描述】:
我有一个名为contin 的数组,如[10,100,1000],我想将一个名为transcontin 的函数应用于该数组。我知道这样做的方法是arrayfunc(@transcontin, contin),如果该函数只有一个输入。
但是,函数 transcontin 需要三个输入:Temp、b 和 H。而且,我需要它将数组的值作为b 传递给函数transcontin。
但是,我必须遍历 Temp 和 H 的值。 Temp 和 H 的这些值在每个应用程序中与 contin 保持相同。
我该如何做到这一点?我该如何做arrayfunc(@transcontin, contin) 但传入其他两个不作为数组传入的参数?
示例输入:contin=[10, 100, 1000]
功能:
function result=transcontin(Temp,b,h)
result=b+Temp^h;
end
假设我想修复 Temp 和 h,并将数组的元素作为 b 传递:
Temp=5;
h=(1/3);
在我根据@Edric arrayfun(@b transcontin(Temp, b, h), contin) 的建议做了这样的事情之后,输出应该是一个向量转换为:
[10+5^(1/3), 100+5^(1/3), 1000+5^(1/3)]
如何做到这一点?
【问题讨论】:
-
提供输入/输出/中间矩阵的例子
-
如果我理解你的问题,你有一些固定的参数,但
arrayfunneed 数组作为输入。您可以使用repmat来克隆您的参数。比如:arrayfun(@thefunction,contin,repmat(b,1000,1)如果你有 1000 个循环。
标签: arrays matlab matrix functional-programming