Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB';s legendre函数返回一个数组_Matlab_Math - Fatal编程技术网

MATLAB';s legendre函数返回一个数组

MATLAB';s legendre函数返回一个数组,matlab,math,Matlab,Math,我正在处理一本书中的一个方程,当我用Mathematica来解它时,它就起作用了。它本质上包含勒让德多项式的某些阶的积分。例如P_1(x)、P_2(x)、P_3(x) 当我用Mathematica处理一个特殊情况时,例如 LegendreP[3, 0.5] 我明白了 这允许我继续我的评估。但在MATLAB中,我得到: >> legendre(3,0.5) ans = -0.4375 -0.3248 5.6250 -9.7428 第一个返回值总是正确的,但随后它会吐出。。。我想其他

我正在处理一本书中的一个方程,当我用Mathematica来解它时,它就起作用了。它本质上包含勒让德多项式的某些阶的积分。例如P_1(x)、P_2(x)、P_3(x)

当我用Mathematica处理一个特殊情况时,例如

LegendreP[3, 0.5]
我明白了

这允许我继续我的评估。但在MATLAB中,我得到:

>> legendre(3,0.5)
ans =
-0.4375
-0.3248
5.6250
-9.7428
第一个返回值总是正确的,但随后它会吐出。。。我想其他系数呢?所以我想做的是告诉MATLAB只返回第一个值。有没有一种方法可以做到这一点,而不必在事后将其分配给自己的变量?差不多

legendre(3,0.5)(1)   
显然不起作用,因为它还不存在于内存中。我这样做对吗


谢谢

如果它困扰您,只需将
legendre
放入一个新函数
legendre1
,这样您就可以使用库函数,但需要使用所需的功能

function [ P ] = legendre1( n,X )
P = legendre(n,X);
P = P(1);
end
或实现自定义范围:

function [ P ] = legendre1( n,X,range )
P = legendre(n,X);
P = P(range);
end
因此
legendre1(3,0.5,1)
将返回:

P =

   -0.4375
legendre1(3,0.5,1:2)


类似的问题很好,谢谢。这就回答了这个问题。现在我想知道在大循环中使用它是否可以,或者我是否应该编写自己的legendre函数来返回第一个顺序…?最好还是坚持使用库,因为官方函数是优化的。既然在这种情况下,给图书馆打电话并不是那么麻烦,我建议直接用它。哥们,好主意!我会用这个。谢谢你们两个!只是小小的改进。将
P(1)
替换为
P(1,:)
,因为
X
也可以是向量,这意味着
legendre(N,X)
将返回一个矩阵。
P(范围)
也一样。
P =

   -0.4375
P =

   -0.4375
   -0.3248