查看: 195|回复: 3|关注: 0

[已解决] 如何将多变量函数的输入用一个向量输入?

[复制链接]

新手

12 麦片

财富积分


050


2

主题

6

帖子

0

最佳答案
本帖最后由 drunkfsoul 于 2020-6-4 15:47 编辑

我定义了一个自变量个数可变的函数,
比如:f=@(fai0,kspdd1,kspdd2,kspdd3,krpdd1,krpdd2,krpdd3)fun

请问怎么实现 g=f(x)这种输入?或者怎么将x的各个数分别赋给(fai0,kspdd1,kspdd2,kspdd3,krpdd1,krpdd2,krpdd3)。
因为自变量个数可变,f=@(x)f(x(1),x(2),.....)这种方式也不好编程。

谢谢!

++++++++++++++
更新说明:我貌似找到解决方法了。用cell替代:input=[fai0,kspdd1,kspdd2,kspdd3,krpdd1,krpdd2,krpdd3]
C = num2cell(input)
out = fun(C{:})


回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

中级

650 麦片

财富积分


5001500


22

主题

957

帖子

110

最佳答案
  • 关注者: 9
发表于 2020-6-3 22:33:44 | 显示全部楼层
help arrayfun
回复此楼 已获打赏: 0 积分

举报

新手

12 麦片

财富积分


050


2

主题

6

帖子

0

最佳答案
 楼主| 发表于 2020-6-3 22:59:01 | 显示全部楼层

谢谢,我看了一下该函数,不是我需要的。
[B1,...,Bm] = arrayfun(func,A1,...,An)

从函数看来,自变量的A1——An还是需要列明,该函数应该是方便向量运算的。

我的需求是将A1...An统一到一个向量进行输入。
原因是因为A1...An的个数是根据程序的输入条件改变的。但是因为函数没法用nargin进行定义(这个是matlabFunction转换函数),只能看有没有别的方法实现。

再次谢谢了
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

中级

650 麦片

财富积分


5001500


22

主题

957

帖子

110

最佳答案
  • 关注者: 9
发表于 2020-6-4 18:21:38 | 显示全部楼层 |此回复为最佳答案
drunkfsoul 发表于 2020-6-3 22:59
谢谢,我看了一下该函数,不是我需要的。

从函数看来,自变量的A1——An还是需要列明,该函数应该是方便 ...

你自己写一个函数,不就ok了、
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表