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
%%%% 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
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)
% 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
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
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.