goMatlab - Mein MATLAB Forum

Mein MATLAB Forum

 
Login  | Registrieren
Bücher:

Physik der Halbleiterbauelemente

Fachkräfte:
Testingenieur (w/m) Testframework für Simulink-basierte Echtzeitanwendungen
Pflege des MATLAB/Simulink-Testframeworks, Spezifizieren von Testkriterien, Testfällen und Testszenarien
dSPACE GmbH - Paderborn

Softwareentwickler MATLAB/Simulink (w/m)
Erarbeitung von Lösungen im Bereich der Schnittstelle zum Simulink-Modell und der Benutzeroberfläche von TargetLink
dSPACE GmbH - Paderborn

Testingenieur (w/m) Konfigurationswerkzeuge für Echtzeitsysteme
Einbinden von Simulink®-Simulationsmodellen, Verteilung der Simulationsmodelle auf Multicore- und Multiprozessorsysteme
dSPACE GmbH - Paderborn

Projektleiter/in im Bereich Embedded Software-Entwicklung Automotive
Entwicklung von Funktionen im Bereich der Embedded Antriebssteuergeräte-Entwicklung
ESG Elektroniksystem- und Logistik-GmbH - München

Berechnungsingenieur/-in - Modellierung Verbrennungsmotoren und Komponenten
Definition von Modellstrategien für Konzept-, Verhaltens- und Detailmodelle
Schaeffler Technologies AG & Co. KG - Herzogenaurach

weitere Angebote

Partner:




Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Probleme mit einer For-Schleife

 

Daunreal
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2012, 20:36     Titel: Probleme mit einer For-Schleife
  Antworten mit Zitat      
Code:
for iComponent = 1:iNumComponents
    sTickYahooFinance = rComponents(1,iComponent).Ticker;
    vDateYahooFinance = datenum(rComponents(1,iComponent).Date);
    vPriceYahooFinance = rComponents(1,iComponent).AdjClose;
    for iTicker = 1:iNumTicker
        sTickAcquisition = Ticker(iTicker,2);
        if strcmp(sTickYahooFinance,sTickAcquisition) == 1
            iDateAcquisition = vDateAcquisition(iTicker);
            ind = find(vDateYahooFinance == iDateAcquisition);
            vPrice = vPriceYahooFinance(ind-ExEvent:ind+PostEvent,1);
        end
    end
end


in vPrice möchte ich meine Endresultate auslesen. Die oben aufgeführte Schleife läuft bisher ca. 90x, jedoch werden die Daten in vPrice jedesmal überschrieben. Welcher Code ist notwendig, damit die Daten Spalte für Spalte ausgelesen werden, ich also am Ende 90 Spalten erhalte?

Ich habe es mit "vPrice(1,iTicker)" probiert, jedoch ohne Erfolg.


eupho
Forum-Meister
Forum-Meister

Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 02.02.2012, 21:20     Titel:
  Antworten mit Zitat      
Mit "vPrice = ..." überschreibst du in jeder Iteration den Wert. vPrice(1,iTicker) sollte prinzipiell schon funktionieren, sofern nTicker == 90 ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2012, 21:58     Titel:
  Antworten mit Zitat      
Dann kommt aber:

"Subscripted assignment dimension mismatch."

Muss ich vorher irgendwelche Indexe festlegen?

Habe es danach mal mit

mPrice(vPrice,iTicker);

probiert, geht auch nicht
 
Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2012, 23:00     Titel:
  Antworten mit Zitat      
Ich habe nun:

Code:
vPrice = NaN(ExEvent + PostEvent + 1, iNumTicker);

for iComponent = 1:iNumComponents
    sTickYahooFinance = rComponents(1,iComponent).Ticker;
    vDateYahooFinance = datenum(rComponents(1,iComponent).Date);
    vPriceYahooFinance = rComponents(1,iComponent).AdjClose;
    for iTicker = 1:iNumTicker
        sTickAcquisition = Ticker(iTicker,2);
        if strcmp(sTickYahooFinance,sTickAcquisition) == 1
            iDateAcquisition = vDateAcquisition(iTicker);
            ind = find(vDateYahooFinance == iDateAcquisition);
            vPrice(1,iTicker) = vPriceYahooFinance(ind-220:ind+190,1);
        end
    end
end


Fehler: Subscripted assignment dimension mismatch.
 
eupho
Forum-Meister
Forum-Meister

Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 02.02.2012, 23:06     Titel:
  Antworten mit Zitat      
Ja, weil vPriceYahooFinance(ind-220:ind+190,1); kein Skalar ist!
Private Nachricht senden Benutzer-Profile anzeigen
 
Daunreal
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2012, 23:18     Titel:
  Antworten mit Zitat      
Und wie löse ich das ganze dann? Stehe gerade total auf dem Schlauch.

Ich möchte z.B. für 90 Events und einem DatenFenster von 5 Tagen Daten haben. Also 90 Spalten und 5 Zeilen, die sich das Script von YahooFinance zieht.
 
eupho
Forum-Meister
Forum-Meister

Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 02.02.2012, 23:34     Titel:
  Antworten mit Zitat      
Probier mal "vPrice(:,iTicker) =..."
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2012, 23:44     Titel:
  Antworten mit Zitat      
Hatte ich auch schon, dann kommt "Improper assignment with rectangular empty matrix"

Das komische ist auch, dass ich nun ne vPrice-Matrix, gefüllt mit NaN habe. Wenn ich den 1. Befehl weglasse, erscheinen in vPrice wenigstens noch die richtigen Aktienkurse der letzten durchlaufenden Schleife.
 
Daunreal
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2012, 17:28     Titel:
  Antworten mit Zitat      
Hat keiner eine Idee, wie man diesen Fehler beseitigt?
 
Harald
Forum-Meister
Forum-Meister

Beiträge: 5356
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ---
     Beitrag Verfasst am: 03.02.2012, 21:07     Titel:
  Antworten mit Zitat      
Hallo,

es ist sehr schwierig, dir bei deinem Code ohne Kenntnis der Parameter zu helfen. Im konkreten Fall müsste man wissen, wie ExEvent und PostEvent gewählt sind.

Das sinnvollste ist, wenn du mit dem Debugger bzw. im Workspace selbst nachprüfst, welche Größe der Ausdruck auf der rechten Seite hat (z.B. mit SIZE) und welche Größe der linke Ausdruck. Das sollte dir auch ermöglichen, das Problem selbst zu beheben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2012 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.