getidm.m

来自「这是用matlab编写的有关动态规划算法中回溯的实现」· M 代码 · 共 40 行

M
40
字号
function [IDM,ipcpdata]=getidm(pcpdata,flag)
m=size(pcpdata,2);
n=m-1;
ipcpdata=zeros(2,n);
for i=1:n
    h=30;
    for j=1:12
        pr=rotateright(pcpdata(:,i+1),2*(j-1));
        hj=cosdist(pcpdata(:,i),pr);
        if hj<h
          h=hj;   
          index=j;  
        end
    end
    ipcpdata(1,i)=index/12;%index from 1:12
    ipcpdata(2,i)=h;
end
IDM=zeros(n,n);
max=0;
for i=1:n
    for j=i:n
      IDM(i,j)=cosdist(ipcpdata(:,i),ipcpdata(:,j));
      if IDM(i,j)>max
          max=IDM(i,j);
      end
    end
end
IDM=IDM/max;
for i=1:n
    for j=1:i-1
      IDM(i,j)=IDM(j,i);
    end
end
if nargin==2
 if flag=='plot';
   imagesc(1-IDM);
   colormap(gray);
   colorbar;
 end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?