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

Probleme mit einer For-Schleife

 

Daunreal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2012, 19: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, 20: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, 20: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, 22: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, 22: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, 22: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, 22: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, 22: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, 16:28     Titel:
  Antworten mit Zitat      
Hat keiner eine Idee, wie man diesen Fehler beseitigt?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.02.2012, 20: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



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.