2016-12-06 14 views
-3

データに対してMax-Min距離測定を使用しましたが、インデックスが行列の寸法を超えています。最大 - 最小距離計算

私が使用したコードは次のとおりです。

clc; 
clear all; 
close all; 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
numRows = 100; 
A = rand(numRows, 2);  %// Example of input matrix 
cent= [ 2.2 3.1; 4.5 5.1]; 
d= []; 
sizeX = size(A,1); 
numofC = size(cent,1); 

for i = 1 : sizeX 
    for j = 1:numofC 
    A= max(cent(j,:),A(i,:)); 
    B = min(cent(j,:),A(i,:)); 
    end 
    dist(i)= sum(B)/sum(A) 
end 

あなたが入力行列Aを持っているが、あなたがそれによって同じ変数Amax(cent(j,:),A(i,:))を割り当てるしようとしているため、このエラーを取得している任意のヘルプしてください

+0

あなたが 'A'と' B'を格納していないのでループのあなたが実際にやろうとしていることがはっきりしないので、私は実際に解決策を提示することはできません。 – Suever

+0

何が間違った結果ですか?間違った番号を取得していますか?どこの猫の写真も撮っていますか?あなたの問題をより具体的にしてください。 – Adriaan

+0

私はコードを変更しました。エラーは何の結果も得られていません.0,1 – Azize

答えて

0

内容を上書きする。ループ内でのその後のAの呼び出しは、ループを初めて通過したときに上書きした要素を呼び出そうとします。

コードからいくつかの変更を加えました。例えば、 distという名前の行列もありません。あなたの入力が可能性が高い行ベクトルであり、最初の次元での `size`はまた、あなただけの最後の繰り返しを1を検討していることになるだろうので、あなたはおそらく、むしろsize``より `numel`を使用する必要があります

clc; 
clear; 
close all; 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
numRows = 100; 
A = rand(numRows, 2);  %// Example of input matrix 
cent= [ 2.2 3.1; 4.5 5.1]; 
sizeX = size(A,1); 
numofC = size(cent,1); 
dist= zeros(numRows,1); 


for i = 1 : sizeX 
    for j = 1:numofC 
     X = max(cent(j,:),A(i,:)); 
     Y = min(cent(j,:),A(i,:)); 
     dist(i)= sum(X)/sum(Y) 
    end 
end