Я написал этот код в MATLAB
close all;
clc
load colon.mat
data=colon;
[n,m]=size(data);
for i=1:m-1
for j=i+1:m
t2(i,j)=fCanberraDist(data(:,i),data(:,j));
b2=sum(t2)/(m-1);
end
end
. FCanberraDist - это функция для вычисления формулы меры расстояния Канберры между объектами набора данных. Это код функции
function [ fcd ] = fCanberraDist( p,q )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
a=abs(p-q);
b=p+q;
s=0;
for i=1:size(p,1)
if a(i)~=0 && b(i)~=0
s=s+(a(i)/b(i));
end
end
fcd=s;
, программа показывает эту ошибку:
Subscript indices must either be real positive integers or logicals.
Error in line:
b2=sum(t2)/(m-1)
Буду благодарен за ваше мнение о том, как исправить эту ошибку.