不需要用循环,直接使用逻辑数组运算更快。
我假设你的x和x(1)--x(n)是不同的变量,那么我用a来表示你的x,用x数组代表你的x(1)--x(n)
我随便给这些数赋值
a=10;
x=1:3:30;
k=5;
temp = true(size(x));
temp(k) = false;
y = prod(a - x) / prod(x(k) - x(temp));
a-x是生成数组[a-x(1), a-x(2), , a-x(n)],prod()是吧这个数组相乘
temp是一个逻辑数组,和x相同大小,并且只有第k个数是false。x(temp)就是生成[x(1), x(2),, x(k-1), x(k+1), , x(n)]
其他的应该容易理解
补充:拉格朗日插值多项式可也这么写:
%x0,y0是已知各点坐标,共n点
x0 = [1, 2, 3];
y0 = [1, 8, 27];
n = length(x0);
%x是要求的点
x = 4;
y = 0;
for k = 1:n
temp = true(size(x0));
temp(k) = false;
y = y + y0(k) prod(x - x0(temp)) / prod(x0(k) - x0(temp));
end
1、打开matlab软件。
2、找到指定的m文件,并打开。
3、在菜单栏找到“%”。
4、选中不需要运行的代码全部选中。
5、选中后点击“%”。
6、这是看到代码变成了绿色,说明已经注释好,即不会运行。
7、再次点击运行,会发现绿色部分的程序不再运行。
首先你要保证你目录下面有melfb函数,这个函数应该不是matlab的系统函数,然后你的输入s应该是你的音频文件的矩阵,fs是melfb函数用的,估计是滤波频率啥的,没做过音频处理的程序,但这个函数你至少保证你有这些东西才能正常运行。
以上就是关于问一下大神matlab应该怎么编程全部的内容,包括:问一下大神matlab应该怎么编程、matlab如何运行程序啊、matlab程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)