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

Vector erstellen

 

tr206
Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 19.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2017, 18:45     Titel: Vector erstellen
  Antworten mit Zitat      
Hallo,

ich versuche mit folgendem code einen Vector zu erstellen indem alle Werte aus den 3 Spalten hintereinander in einen vector gebracht warden. D.h. der Vector hat dann 27 Elemente (9*3 Elemente) die in einer Reihe von links nach rechts stehen. Der code gibt mir aber nur die Elemente aus der dritten Spalte wieder aber nicht die der ersten beiden. Kann mir jemand hiermit helfen?

Danach will ich aus den Elementen die drei höchsten und niedrigsten Deciles ermitteln, weiss aber nicht wie das geht. Daher bitte ich hier um eure Hilfe.

Code:
% import data from Excel and calculate n-month returns
x = xlsread('PCAtest.xlsx','c1:e10'); %import (Pt/Pt-1)
 
% Calculate monthly standard deviation
for j=1:size(x,2)
    for i=2:size(x,1) %soll fuer t-1 die vola berechnen Wie geht das?
        vola(i,j)= x(i,j).^2            
   end
end

Length=i*j
Vectorvolas=zeros(1,Length);


%%%% values as large as or larger than xi i.e. Pi
for j=1:size(x,2)
    for i=1:size(x,1)
        A=vola(i,j);
        for n=1:size(x,1)
            Vectorvolas(1,i)=vola(i,j);
            end
        end
end
 


PCAtest.xls
 Beschreibung:

Download
 Dateiname:  PCAtest.xls
 Dateigröße:  695.5 KB
 Heruntergeladen:  260 mal
Private Nachricht senden Benutzer-Profile anzeigen


Wine

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.04.2017, 14:45     Titel:
  Antworten mit Zitat      
Hi,

ich habe deinen Code so angepasst, dass er jetzt von oben nach unten und links nach rechts deine x-Matrix ausliest. Dein Fehler war, dass du bei deinem Vektovolas die Variable i verwendet hast. Diese geht aber nur von 1-9. Daher wurden in der for Schleife während sie gelaufen ist, erst die ersten 9 Elemente in die ersten 9 Spalten von Vektovolas geschrieben, dann die nächsten 9 und schließlich die letzten 9. Und darum hast du am Schluss auch nur die Elemente aus der dritten Spalte dort wiedergefunden. Wenn du die beigefügten Codeschnipsel einfügst sollte es jetzt funktionieren.
Der Erste dient nur dem Preallocating und sollte vor der Verwendung der ersten for-Schleife stehen. Das ist kein Fehler, hilft MATLAB aber Rechenzeit zu sparen.

Für dein zweites Problem kannst du dir mal die max- und min-Fuktionen von MATLAB anschauen. Diese helfen dabei eventuell.
(Eingabe von doc max in das command window)

Viele Grüße,
Ines

Code:
%preallocating
vola = zeros(size(x,1), size(x,2));

...

% values as large as or larger than xi i.e. Pi
for j=1:size(x,2) %Spalten (1,2,3)
    hilf2 = (j-1)*9;
     for i=1:size(x,1) %Zeilen (1-9)
         % A=vola(i,j);
         hilf = i+hilf2;
         Vectorvolas(1,hilf)=vola(i,j);
    end
end
 
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.