gpt4 book ai didi

c - 数组和 matlab 编码器的问题

转载 作者:行者123 更新时间:2023-11-30 14:49:14 25 4
gpt4 key购买 nike

我一直致力于使用 Matlab-coder 创建 C 代码。我有一个名为 melfunction 的函数,它在下面的代码的第 20 行给出了错误。

function [ c ] = melfunction( x )

bank=melbankm(24,256,8000,0,0.4,'t');
bank=full(bank); %full() convert sparse matrix to full matrix
bank=bank/max(bank(:));

w=1+6*sin(pi*[1:12]./12);
w=w/max(w);
xx=double(x);
xx=filter([1-0.9375],1,xx);
xx=enframe(xx,256,80)
p = zeros(1,256); < --------------------- SOLUTION CHANGE TO p = zeros(256)
m = zeros(1,12); < --------------------- SOLUTION CHANGE TO p = zeros(12)

for i=1:size(xx,1)
y=xx(i,:);
s=y'.*hamming(256);
t=abs(fft(s));
t=t.^2;
p(i,:) = t; < --------------------------- ERROR HERE
c1=dctcoef*log(bank*t(1:129));
c2=c1.*w';
m(i,:)=c2;
end

错误消息看起来像这样

使用 melfunction 时出错(第 20 行)索引超出数组维度。索引值2超出了数组p的有效范围[1-1]。

TESTINPUTS 错误(第 2 行)d0=melfunction(x)

如果我找到答案,我会在找到答案后发布。

最佳答案

好吧,我搞砸了一点,发现我相信我不知道如何正确初始化 p 和 m 。在尝试为 Matlab-Coder 的另一部分添加这些代码行时,我错误地初始化了 p 和 m 变量。这是最初的初始化。

p = 零(1,256);
m = 零(1,12);

我也是这么改的。

p = zeros(256);
m = zeros(12);

关于c - 数组和 matlab 编码器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49801400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com