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

Korrelation einzelner Elemente einer Matrix

 

Teslas_Revange
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 18.02.15
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 17.05.2016, 10:58     Titel: Korrelation einzelner Elemente einer Matrix
  Antworten mit Zitat      
Tag Männers und Frauens,

Wir haben von der Uni eine kleine Übungsaufgabe in Matlab bekommen.
Wir sollen eine function schreiben die mit einer Matrix a mit m Zeilen gefüttert wird. Dazu soll eine Referenz Matrix b mit n Spalten und m Zeilen gegeben werden. Jetzt soll jeweils der Korrelationswert Y am Ende ausgegeben werden, wie die Prozentuale Abweichung des jeweiligen element a auf jedes einzelne Element k von b der Zeile 1 ... m ergibt.

Hier ist meine Idee bis jetzt.

Code:

% Input: Matrix a und Matrix b
a=[1; 2];
b=[2 3 4 5 6; 3 1 8 9 7];

% Für den Fall Wert a<b
if a<=b
  y=a./b
% Für den Fall Wert a>b  
else
  y=1-((a-b)./b)
end
 


ich weiß es ist noch keine Function aber das spielt erstmal keine Rolle das optimiere ich später.

Problem ist nun, ich weiß nicht wie ich dem Programm vermitteln soll das er jeden Wert einzeln vergleichen soll... Wie schreibt er eine Matrix die beide Bedingungen beschreibt? Sollte ich mit einer For-Schleife arbeiten? Hat eine For-Schleife zu viel Rechenzeit wenn ich mal 10000 Werte pro Matrix nehme?

Über eure Hilfe würde ich mich sehr freuen.

Grüße Franzl
_________________

Wer noch nie einen Fehler begangen hat, hat noch nie etwas neues probiert.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.05.2016, 15:06     Titel:
  Antworten mit Zitat      
Hallo,

mir ist zunächst nicht klar, was gemacht werden soll.

Soll a spaltenweise mit b verglichen werden?
Wie soll dann vorgegangen werden, wenn bei einem Spaltenvergleich a nicht durchgehend > oder < als b ist?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Teslas_Revange
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 18.02.15
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 17.05.2016, 15:15     Titel:
  Antworten mit Zitat      
Hallo Harald,

vllt. erkläre ich es an einem praktischen Beispiel.

Mein Vektor a besteht aus 1 Wert der z.B. 5 cm Durchmesser einer Kugel darstellt.
im Vektor b sind die Werte der neu produzierten Kugeln 3cm 5cm 6cm. Jetzt soll ich die prozentuale Abweichung zu der Referenzkugel zeigen. und mit meinen Bedingungen möchte ich erfüllen dass er nicht über 100% kommt. sprich eine kugel mit 6cm hätte ja dann 120% und wäre somit besser als die 5 cm Kugel die vorgegeben ist. So und jetzt möchte ich dem Vektor a und b mehrere Zeilen zuweisen falls das Objekt viele verschiedene Parameter hat. Sprich Gewicht, Glättefaktor oder was auch immer.

Was ich nun möchte ist im Endeffekt wenn das Programm merkt huch da ist ein Wert der größer als mein Referenzwert ist dann nehme ich die andere Formel.

ich hoffe das war verständlicher...

Grüße Franz
_________________

Wer noch nie einen Fehler begangen hat, hat noch nie etwas neues probiert.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.05.2016, 15:24     Titel:
  Antworten mit Zitat      
Hallo,

für mich nicht.

Versuchen wir es mal anders:
Welche Dimensionen soll y am Ende haben? Welcher Eintrag soll nach welcher Formel berechnet werden?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Teslas_Revange
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 18.02.15
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 17.05.2016, 15:32     Titel:
  Antworten mit Zitat      
Okay auf ein neues,

a hat immer n Zeilen und eine Spalte und b hat n Zeilen mit m Spalten. Nun soll a Punktweise die Abweichung zu b in y mit n Zeilen und m Spalten ausgegeben werden.

Was ja so schon funktioniert. Jedoch bricht er immer ab wenn er eine der Funktionen nicht mehr erfüllen kann.

Grüße und danke für die Ausdauer mit mir...
_________________

Wer noch nie einen Fehler begangen hat, hat noch nie etwas neues probiert.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ich habe nach wie vor Probleme zu verstehen, was du meinst, insbesondere
Zitat:
Nun soll a Punktweise die Abweichung zu b in y mit n Zeilen und m Spalten ausgegeben werden.

Mal so direkt gefragt: wenn du dir deine Beschreibung durchliest, verstehst du sie denn selbst?

Du hast ja schon ein sehr konkretes Beispiel gezeigt. Dann hilft es auch zu sehen, was genau (also welche 10 Zahlen) denn in dem Beispiel herauskommen sollen.

Ich habe mal geraten, was du wollen könntest:
Code:
bigA = repmat(a, 1, size(b,2));

y = zeros(size(b));
case1 = bigA < b;
case2 = ~case1;
% Für den Fall Wert a<b
y(case1) = bigA(case1)./b(case1);
% Für den Fall Wert a>b  
y(case2) = 1-((bigA(case2)-b(case2))./b(case2))


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Teslas_Revange
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 18.02.15
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 27.05.2016, 20:54     Titel:
  Antworten mit Zitat      
Grüß dich Harald erstmal sorry für die späte Antwort.

Ja das meinte ich im Prinzip. Wink
Setze mich die Tage nochmal dran und dann stell ich nochmal das fertige Programm in das Forum!

Grüße Franzl
_________________

Wer noch nie einen Fehler begangen hat, hat noch nie etwas neues probiert.
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 - 2025 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.