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

for-Schleife für Matrixaddition... Hilfe!

 

FrankPauers68
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.10.18
Wohnort: München
Version: R2017b
     Beitrag Verfasst am: 19.10.2018, 15:45     Titel: for-Schleife für Matrixaddition... Hilfe!
  Antworten mit Zitat      
Hallo Freunde,

ich möchte bei einem gemessenen Druckverlauf ein Offset addieren.
Der Druckverlauf umfasst 100 Spalten zu je 7200 Messwerten. Für jede Spalte habe ich einen Offset-Wert (data_Offset), welcher auf jeden Zeilenwert der Spalte (data) addiert werden muss, um als Resultat wieder eine (korrigierte) Matrix mit 7200x100 Einträgen zu bekommen...

Das Einlesen der Daten aus einer Excel-Datei funktioniert, nur die Schleife bereitet mir Probleme. Ich komme hier leider nicht weiter und hoffe auf eure Hilfe.

Code:


%% Einlesen der Daten

data = xlsread('2097.xlsx','p_PE_31'); % Druckverlauf 7200 x 100
data_Offset = (xlsread('2097','Indication Waveforms','H3:H102'))'; % Offset 7200 x 1

%% Verarbeitung

 for i = 1:1:size(data,2)
 
Druckverlauf_mit_Offset = data(:,i) + data_Offset(1,i);
 
 end

 



Viele Grüße
Frank
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: 19.10.2018, 16:52     Titel:
  Antworten mit Zitat      
Hallo,

und welche Probleme bestehen genau?

Auf den ersten Blick sehe ich, dass du in der for-Schleife die Variable überschreibst, also eher z.B.
Code:
Druckverlauf_mit_Offset(:, i)


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
 
FrankPauers68
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.10.18
Wohnort: München
Version: R2017b
     Beitrag Verfasst am: 19.10.2018, 20:17     Titel:
  Antworten mit Zitat      
Kurze Korrektur vorweg: "data_Offset" ist vom Typ 1x100, also ein Zeilenvektor

In der 7200x100 Matrix ("data") sollen alle Werte einer Spalte mit dem zugehörigen Offset-Wert ("data_Offset") der gleichen Spaltennummer addiert (korrigiert) werden. Also ein skalarer Wert, der auf alle 7200 Messwerte in "data" addiert wird - nur eben für insgesamt 100 Spalten...

Ohne Schleife müsste ich dies für alle Spalten einzeln machen, ähnlich wie...

Code:

Druckverlauf_korrigiert = data(:,1) + data_Offset(1,1)
....
 


...für die erste Spalte von "data" wird so der erste Offset-Wert addiert.

Ich habe leider noch keine funktionierende Schleife erstellen können und darin liegt mein Problem.

Vielen Dank für die Hilfe
Frank
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: 19.10.2018, 21:54     Titel:
  Antworten mit Zitat      
Hallo,

was funktioniert an der Schleife nicht?
Hast du meinen Vorschlag versucht?

Ab R2016b sollte es im übrigen komplett ohne Schleife gehen:
Code:
Druckverlauf_mit_Offset = data + data_Offset;

(implicit expansion)

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
 
FrankPauers68
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.10.18
Wohnort: München
Version: R2017b
     Beitrag Verfasst am: 20.10.2018, 09:57     Titel:
  Antworten mit Zitat      
Hallo Harald,

es funktioniert tatsächlich ganz ohne Schleife und darauf wäre ich nie gekommen.

Vielen Dank und schönes Wochenende
Frank
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.