首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab错误:输入参数不足

Matlab错误:输入参数不足
EN

Stack Overflow用户
提问于 2017-01-25 11:54:24
回答 1查看 279关注 0票数 0

这是IMDCT的编码。我不知道下面的matlab代码出了什么问题。错误是以下行中的输入参数不足:

代码语言:javascript
复制
if blocksplit_flag(iter) && block_type(iter) == 2;

下面是完整代码的一部分:

代码语言:javascript
复制
function output_data = IMDCT( input_data, block_type, blocksplit_flag, switch_point)   
global sin_window_0 sin_window_1 sin_window_2 sin_window_3;
output_data(1:4,1:576) = double(0);
output_holder(1:36) = double(0);
output_holder_1(1:36) = double(0);
output_holder_2(1:36) = double(0);
output_holder_3(1:36) = double(0);
block_type2_sum(1:3,1:12) = 0;
block_type2_sum_1(1:3,1:12) = 0;
block_type2_sum_2(1:3,1:12) = 0;
block_type2_sum_3(1:3,1:12) = 0;
persistent overlap_adder skipper;
if isempty(overlap_adder)
   overlap_adder = zeros(2,576);
   skipper = zeros(1,18);
end
for iter = 1:4
%decide channel to use the appropriate overlap_adder
if mod(iter,2) == 1;
  channel = 1;
else
  channel = 2;
end    
if blocksplit_flag(iter) && block_type(iter) == 2;
    current_start = 1;
    current_start_2 = 2;
    current_start_3 = 3;
    if switch_point(iter)
        %do long transform for first 2 sub_bands.
        while (current_start <= 36 && current_start_2 <= 36 && current_start_3 <= 36)
            output_holder(:) = 0;
            output_holder_1(:) = 0;
            output_holder_2(:) = 0;
            output_holder_3(:) = 0;

            temp_data = input_data(iter, current_start:current_start+17);
            temp_data_1 = input_data(iter, current_start);
            temp_data_2 = input_data(iter, current_start_2:current_start_2+16);
            temp_data_3 = input_data(iter, current_start_3:current_start_3+15); 
            if temp_data == skipper
            else
                for i = 1:36
                    k1 = (current_start_2:current_start_2+16);
                    k2 = (current_start_3:current_start_3+15);

                    %output_holder(i) = ((temp_data_1 .* cos_imdct_long_1(i,:))+ ((cos_imdct_long_2(i,:)) .*sum((temp_data_2) .* (sin((k1)*((pi/72)*(2i+19))))))+ ((cos_imdct_long_3(i,:)) .* ((temp_data_3).*(sin((k2-2)*((pi/72)*(2i+19)))))))/(sin((pi/72)*(2i+19)));   
                    output_holder_1(i) = (temp_data_1 .* (cos((pi/72).*(2i+19))));
                    output_holder_2(i) = ((cos(3.*((pi/72).*(2i+19)))) .* sum((temp_data_2).*(sin((k1).*((pi/72).*(2i+19))))));
                    output_holder_3(i) = ((cos((pi/72).*(2i+19))) .*sum((temp_data_3).*(sin((k2-2).*((pi/72).*(2i+19))))));

                    output_holder(i) = output_holder_1(i) + output_holder_2(i) + output_holder_3(i);
                end
.
.
.
EN

回答 1

Stack Overflow用户

发布于 2017-01-25 17:01:09

如果你正在编写一个函数,并在调用函数之前点击run按钮,那么你就会遇到这样的错误。使用适当的输入调用一个函数应该可以解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41843112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档