Как исправить эту ошибку «Индексы индексов должны быть либо натуральными числами, либо логическими числами».? - PullRequest
0 голосов
/ 11 ноября 2019

Я написал этот код в 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)

Буду благодарен за ваше мнение о том, как исправить эту ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...