matlab运行之后原程序没,用MATLAB运行代码后总显示 Error using Untitled (line 2) Not enough inp...

问题描述:

用MATLAB运行代码后总显示 Error using Untitled (line 2) Not enough input arguments.

下面是我的源程序

function dist = dtw(t,r)

n = size(t,1);

m = size(r,1);

% 帧匹配距离矩阵

d = zeros(n,m);

for i = 1:n

for j = 1:m

d(i,j) = sum((t(i,:)-r(j,:)).^2);

end

end

% 累积距离矩阵

D = ones(n,m) * realmax;

D(1,1) = d(1,1);

% 动态规划

for i = 2:n

for j = 1:m

D1 = D(i-1,j);

if j>1

D2 = D(i-1,j-1);

else

D2 = realmax;

end

if j>2

D3 = D(i-1,j-2);

else

D3 = realmax;

end

D(i,j) = d(i,j) + min([D1,D2,D3]);

end

end

dist = D(n,m);

disp('正在计算参考模板的参数...')

for i=1:5

fname = sprintf('E:\\MATLAB6p5\\work\\dtw_sj\\%da.wav',i);

x=fname;

[x1 x2] = vad(x);

m = mfcc(x);

m = m(x1-2:x2-2,:);

ref(i).mfcc = m;

% soundview(x);

end

disp('正在计算测试模板的参数...')

for i=1:1

fname = sprintf('E:\\MATLAB6p5\\work\\dtw_sj\\%db.wav',i);

x=fname;

[x1 x2] = vad(x);

m = mfcc(x);

m = m(x1-2:x2-2,:);

test(i).mfcc = m;

end

disp('正在进行模板匹配...')

dist = zeros(1,5);

for i=1:1

for j=1:5

dist(i,j) = dtw(test(i).mfcc,ref(j).mfcc);

end

end

disp('正在计算匹配结果...')

for i=1:1

[d,j] = min(dist(i,:));

fprintf('测试模板 %d 的识别结果为:%d\n',i,j);

end

1个回答

分类:

综合

2014-10-13

问题解答:

我来补答

你运行函数的时候加参数了么.

再问: 这是我的毕业设计 我就是完全没用过 不太懂 程序也是网上下的 加参数是要把程序里面的t,r,n,m这些改成具体的数字吗

再答: dist = dtw(t,r) 你在运行的时候要把t,r换成你的数据

再问: 改了之后还是有问题 Error: File: Untitled.m Line: 1 Column: 21 Unexpected MATLAB expression.

再答: 可能我没解释清楚。是这样,你粘贴的文件(上面这些)不用改。 但是你在命令窗口输入的时候/在其他文件中调用这个函数的时候 dist = dtw(t,r) —————— dist = dtw(12,32) 要用右侧这种形式,而不是左侧这种形式。 和C语言的函数参数传递是一样的

再问: 谢谢啊 不过我还是有问题 命令窗口还要输入其他内容吗

展开全文阅读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值