dtw matlab,下载的用MATLAB实现的DTW算法,不会用,跪求大神帮忙

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

这是下载的用MATLAB实现的DTW算法,问题是怎么用这个算法简单测试一下,例如两个序列(3,5,6,7,7,1)(3,6,6,7,8,1,1)用这个算法计算这两个序列的相似性?哪个大神帮帮忙,本人菜鸟一枚

function [Dist,D,k,w,rw,tw]=dtw(r,t)

%

% [Dist,D,k,w,rw,tw]=dtw(r,t,pflag)

%

% Dynamic Time Warping Algorithm 动态时间规整算法

% Dist is unnormalized distance between t and r Dist是t和r之间的非标准化距离

% D is the accumulated distance matrix D是累积的距离矩阵

% k is the normalizing factor k是正态因子

% w is the optimal path w是最佳路径

% t is the vector you are testing against t是你要测试的矢量

% r is the vector you are testing r是你正在测试的矢量

% rw is the warped r vector rw是扭曲的r矢量

% tw is the warped t vector tw是扭曲的t矢量

% pflag plot flag: 1 (yes), 0(no) pflag图标记:1(yes),0(no)

%

% Version comments: 文本的评论:

% rw, tw and pflag added by Pau Mic

[row,M]=size(r); if (row > M) M=row; r=r'; end;

[row,N]=size(t); if (row > N) N=row; t=t'; end;

d=sqrt((repmat(r',1,N)-repmat(t,M,1)).^2); %this makes clear the above instruction Thanks Pau Mic

D=zeros(size(d));

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

for m=2:M

D(m,1)=d(m,1)+D(m-1,1);

end

for n=2:N

D(1,n)=d(1,n)+D(1,n-1);

end

for m=2:M

for n=2:N

D(m,n)=d(m,n)+min(D(m-1,n),min(D(m-1,n-1),D(m,n-1))); % this double MIn construction improves in 10-fold the Speed-up. Thanks Sven Mensing

end

end

Dist=D(M,N);

n=N;

m=M;

k=1;

w=[M N];

while ((n+m)~=2)

if (n-1)==0

m=m-1;

elseif (m-1)==0

n=n-1;

else

[values,number]=min([D(m-1,n),D(m,n-1),D(m-1,n-1)]);

switch number

case 1

m=m-1;

case 2

n=n-1;

case 3

m=m-1;

n=n-1;

end

end

k=k+1;

w=[m n; w]; % this replace the above sentence. Thanks Pau Mic

end

% warped waves

rw=r(w(:,1));

tw=t(w(:,2));

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值