2D Histogram aus 2 Matrizen

2 vues (au cours des 30 derniers jours)
Oliver Schöttler
Oliver Schöttler le 14 Oct 2020
Modifié(e) : Stephan le 15 Oct 2020
Guten Abend,
ich würde gerne aus 2 Bildern die als Matrizen vorliegen ein 2D Histogram erstellen. Dazu habe ich folgenden Code geschrieben, bekomme aber diese Fehlermeldung: "Index in position 1 is invalid. Array indices must be positive integers or logical values." Wo liegt der Fehler darin, hat jemand eine Idee? Vielen Dank im vorraus!
MfG
Code:
%% 2D Histogram
clearvars; clc;
% Bilder als Matrizen
A = [0 5 1 2 2 2; 1 0 1 1 6 6; 2 4 4 6 3 1; 1 4 2 3 3 1; 3 6 6 7 3 7];
B = [5 7 2 1 1 2; 2 3 2 2 4 4; 1 3 6 4 0 2; 2 6 3 0 0 2; 4 4 4 2 0 5];
% Endmatrix mit Nullen füllen und restliche Initialisierungen
H_2D = zeros(8,8);
[m, n] = size(A);
g_a = 0;
g_b = 0;
% Schleife zum befüllen der Endmatrix
for k = 1:m
for p = 1:n
g_a = A(k,p);
g_b = B(k,p);
H_2D(g_a,g_b) = H_2D(g_a,g_b)+1;
end
end
% Ausgabe
H_2D

Réponse acceptée

Stephan
Stephan le 15 Oct 2020
Modifié(e) : Stephan le 15 Oct 2020
Immer dann, wenn in A oder B eine 0 vorkommt, wird g_a oder eben g_b gleich Null. Wenn dann im nächsen Schritt versucht wird, H_2D in Zeile oder Spalte = 0 zu indexieren, kommt die Fehlermeldung, weil Matlab grundsätzlich mit 1 beginnt zu indexieren. Das ist bei Deinem Fall sofort im ersten Schritt der Schleife der Fall, weil A(1,1) = 0 ist und somit g_a = 0 wird. H_2D(0,5) gibt es in Matlab aber nicht.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!