WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

krosskorrelation mit matrix(umwandlung in boolsch)

 

Ristrafil
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.02.2021, 15:28     Titel: krosskorrelation mit matrix(umwandlung in boolsch)
  Antworten mit Zitat      
Hallo zusammen, ich habe mein Problem im Code selbst erklärt. ich hoffe es ist verständlich.
danke für eure mühe
lg Ristrafil



Code:

%Hier wird eine Matrix erstellt
M = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];

%Hier erstelle ich 2 Vektoren a und b mit denen ich später die
%Kross-Korrelation durchführen möchte: Jede Zeile soll mit jeder verglichen
%werden bezüglich der Kross Korrelation, sprich: Zeile 1 mit Zeile 2,3,4.
%Zeile 2 mit Zeile 3,4. Zeile 3 mit Zeile 4

for x = 1:size(M,1)
    for y = 1:size(M,1)
        a(x,:,x) = M(x,:);
        b(y,:,x) = M(y,:);
    end
end

%jetzt werden die Vektoren für die Kross Korrelation umgewandelt in
%boolsche vektoren. Das Ziel sollte sein: 1. Zeile [ 1 2 3 4 5] --> 1111100000   2. Zeile [2 3 4 5 6] --> 0111110000   3.Zeile [ 3 4 5 6 7] --> 0011111000  usw....
% das heißt: egal welche Zeile ich aus der Matrix extrahiere sie soll in
% boolsch umgewandelt werden
for x  = 1:size(M,1)
z = zeros(1,max(max(a(x,:,x)),max(10)));
z(a(x,:,x)) = 1;
end
for x = 1:size(M,1)
    for y  = 1:size(M,1)
        y = false(1,max(max(b(y,:,x)),max(10)));
        y(b(y,:,x)) = 1;
    end
end

% jetzt kommt die KrossKorrelationsrechnung. jede zeile soll mit jeder
% verglichen werden
for x = 1:size(M,1)
      for y = 1:size(M,1)
          [d] = xcorr(z(a(x,:,x)),y(b(y,:,x)),0);
          WERT_CCC(x,:,x) = d;
      end
end
% Beispiel zeile 1 wird mit zeile 2 verglichen:
%Zeile 1: 1111100000
%Zeile 2: 0111110000
%Ergebniss: kross korrelation von 4
 



Mein Problem/Fehler liegt in der Umwandlung der Zeilen in Boolsche Vektoren.
z.B. wenn ich die Zeile 2 prüfen möchte ob sie richtig umgewandelt wurde kommt folgendes: 1111110000 ABER sie muss so aussehen: 0111110000

ich finde den Fehler einfach nicht SadSad
falls jemand was findet wäre ich extrem dankbar ich verzweifel hier langsam xD
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.02.2021, 12:32     Titel:
  Antworten mit Zitat      
Hallo,

der Code ist ziemlich komplex geschrieben mit 3D-Arrays, Mehrfach-Schleifen, "interessanter" Indizierung.

Für das Kernproblem kann auch ismember helfen:
Code:
ismember(1:10, [ 1 2 3 4 5])
ismember(1:10, [2 3 4 5 6])


Ansonsten würde ich versuchen, da möglichst etwas mehr Struktur reinzubringen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Ristrafil
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2021, 03:31     Titel:
  Antworten mit Zitat      
danke Harald,

mein Problem hab ich damit lösen können

LG
Ristrafil
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.