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

Ersetzen von Matrixeinträgen durch Vektor

 

DominikP

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2017, 20:50     Titel: Ersetzen von Matrixeinträgen durch Vektor
  Antworten mit Zitat      
Hallo,
Ich bin neu in Matlab und habe ein Problem, welches ich auch nach verschiedenen Versuchen es zu lösen nicht hinbekomme.

Ich habe Messdaten aus Excel importiert und in einer 520x9 Matrix abgelegt. Die Messdaten sind wöchentlich aufgenommen worden und ich möchte diese jetzt als Anteile der gesamtzahl jedes Jahres darstellen. Dazu habe ich einen Hilfsvektor erstellt, der die Daten zwischenspeichert.
Von dort aus möchte ich jetzt gerne innerhalb der Schleife der Übersichtlichkeit halber die Daten in der Ausgansmatrix `Data`durch die berechneten Werte ersetzen.
Hier mein letzter Versuch

Code:
%Einlesen der Messdaten aus Excel Datei
filename = 'weeklyAverageDataset.xlsx';
Data = xlsread(filename);

%Schleife zum Normieren der Fälle auf Jahresbasis
%Schleifenzähler zur Bestimmung des Jahres
year = 0;
while(year < 10) ;
    %Summe der Fälle in Jahr
    yearsum = sum(Data(1+year*52:4,52*year+52:4));
    %Erzeugen einer Submatrix, in der die gemeldeten Fälle normiert werden
    Cases = Data(1+year*52:4,52*year+52:4);
    Cases = Cases / yearsum;
    %Ersetzen der Einträge in Ausgangsmatrix Data durch Normierte Einträge
    %aus Cases
    Data(1+year*52:4,52*year+52:4) = Cases(:,1);
    %Erhöhen des Schleifenzählers
    year = year+1;
end;
 

Leider bekomme ich nur die Fehlermeldung

``Error using +
Matrix dimension must agree``

und kann den Fehler einfach nicht finden, wahrscheinlich ist es iwas triviales aber ich sehe es einfach nicht.

Vielen Dank für eure Hilfe

Liebe Grüße

Dominik

[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]


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.03.2017, 22:37     Titel:
  Antworten mit Zitat      
Hallo,

bei der Fehlermeldung wird ja auch die Zeile mit angegeben. Das wäre hilfreich.
Alternativ ein Datensatz, damit man das Problem reproduzieren kann.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2017, 22:52     Titel:
  Antworten mit Zitat      
Also die Fehlermeldung bezieht sich auf Zeile 16.

Data(1+year*52:4,52*year+52:4) = Cases(:,1); 

Ob ich den Datensatz veröffentlichen darf muss ich erst abklären, da ich diese
von einer dritten Person weitergeleitet bekam.
Data ist eine 520x9 Matrix, deshalb verstehe ich nicht wo das Problem bei der Zuweisung liegen kann. Diese Grenzen sollten ja innerhalb der Schleife eingehalten werden.

Vielen Dank schonmal
 
Harald
Forum-Meister

Forum-Meister


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

wenn ich deinen Code mit zufälligen Daten laufen lasse, bekomme ich eine andere Fehlermeldung als die von dir angegebene.
Das liegt daran, dass 52*year+52:4 immer für year >= 0 immer leer ist, weil 52*year+52 > 4.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.03.2017, 19:23     Titel:
  Antworten mit Zitat      
Danke für die Hilfe hab es eben selbst gemerkt. Hab bei der Notation was vertauscht gehabt und jetzt klappts.
 
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.