在Matlab中索引向量函数E(s)=(E_1(s)、E_2(s)、E_3(s)),而不评估函数

在Matlab中索引向量函数E(s)=(E_1(s)、E_2(s)、E_3(s)),而不评估函数,matlab,symbolic-math,Matlab,Symbolic Math,这很简单,但由于某种原因,我在互联网上的任何地方都找不到解决方案。我在Matlab中有一个向量函数: E(s) = [E_1(s),E_2(s),E_3(s)] 我希望能够对它进行索引,因此通常在Matlab中,您会使用E(1),作为第一个元素。然而,这只是计算s等于2的向量E(s)(1)也给出了一个错误 这里供参考。如果我理解正确,您唯一的希望就是使用命令“eval”。键入“help eval”,看看您是否需要它。您有一个返回向量的符号函数。键入whos,您将看到E的类是symfun。不幸的

这很简单,但由于某种原因,我在互联网上的任何地方都找不到解决方案。我在Matlab中有一个向量函数:

E(s) = [E_1(s),E_2(s),E_3(s)]
我希望能够对它进行索引,因此通常在Matlab中,您会使用
E(1)
,作为第一个元素。然而,这只是计算
s
等于
2
的向量<代码>E(s)(1)也给出了一个错误


这里供参考。

如果我理解正确,您唯一的希望就是使用命令“eval”。键入“help eval”,看看您是否需要它。

您有一个返回向量的符号函数。键入
whos
,您将看到
E
的类是
symfun
。不幸的是,我不认为可以直接索引到符号函数中。但是,只需将其设置为新变量并传入符号变量
s
,即可将其转换为符号表达式(class
sym

Es = E(s);

现在,您应该能够根据需要评估
Es(1)
Es(2)
Es(3)

谢谢您的回答。我试过了,可惜运气不好,它是一个对象,是“eig”函数的输出,创建了一个数组。该对象是相同的,除了出于某种原因我可以访问它的元素!你知道向量函数没有包含在你的代码中,所以我不确定你想做什么。你能提供给你错误的代码吗?刚刚在回答,然后发现你在这里双重发布。为了观众的利益,我将重复我的答案,但应该避免重复发布。你甚至可以考虑把数学题记下来,因为这不是一个关于数学的问题。”霍奇勒:你可能是对的,我认为Matlab标记的存在是可以接受的,但是它在这里更有意义。非常感谢。因此,这需要1x1 symfun->3x1 sym。我现在可以提取您指出的元素,但是如何恢复Es(1)对象的功能?我不确定您的意思是什么?您是否在询问如何插入
s
和其他符号变量的值?如果是这样的话,你可以直接使用。或者您可以将
Es
向量的每个元素转换回符号函数,例如,
Es2(s)=symfun(Es(2),s)
。然后您可以执行
Es2(3)
来计算
s
等于3的第二个元素。玩转游戏,很多选项都是可能的,如果这是你想要的,你可能会想出如何重新矢量化它。你的研究看起来太令人兴奋了!祝你好运。