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

Das Program liest die falsche Matrix Dimension

 

Testrunner
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 21.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.06.2010, 21:34     Titel: Das Program liest die falsche Matrix Dimension
  Antworten mit Zitat      
Hallo Zusammen!

Ich hoffe ihr koennt und seid so nett mir weiterzuhelfen!

Das Problem:
Code:

load master.dat
US = master(:,1:44);
inter = master(:,45:46);
R1 = [US inter];
K = 44;
N = 2;
A = [1 zeros(1,K); 0 -ones(1,K)];
C = [zeros(1,N); -ones(1,N)];
F = zeros(N,1);
F1 = zeros(N,1);
F2 = zeros(N,1);
delete table7.out
diary table7.out
for ii=1:2
    if ii==1
       fprintf(' Period : 1970/1-2007/12\n')
       R = R1;
       Y = inter;
    end
    if ii==2
       fprintf('\n\n Period : 1970/1-1988/12\n')
       R = R1(1:43,:);
       Y = inter(1:43,:);
    end
    if ii==3
       fprintf('\n\n Period : 1989/1-2007/12\n')
       R = R1(229:456,:);
       Y = inter(229:456,:);
    end
    T = length(R);
    mu1 = mean(R(:,1:K))';
    V11 = cov(R(:,1:K),1);
    a1 = mu1'*inv(V11)*mu1;
    b1 = mu1'*inv(V11)*ones(K,1);
    c1 = ones(1,K)*inv(V11)*ones(K,1);
    d1 = a1*c1-b1*b1;
    mu = mean(R)';
    V = cov(R,1);
    a = mu'*inv(V)*mu;
    b = mu'*inv(V)*ones(N+K,1);
    c = ones(1,N+K)*inv(V)*ones(N+K,1);
    d = a*c-b*b;
    X = [ones(T,1) R(:,1:K)];
    G = [1+a1 b1; b1 c1];
 


Wie ihr seht durchlaeuft das Programm 3 Schleifen. Die erste ueber die gesamte Zeitperiode und die anderen beiden nur ueber einen Teil. Die erste Schleife verlaeuft einwandfrei. Die zweite wirft jedoch folgenden Fehler aus:

??? Error using ==> horzcat
CAT arguments dimensions are not consistent.

Error in ==> table7 at 47
X = [ones(T,1) R(:,1:K)];

Dies haengt wohl mit der Dimension der ones(T,1) Matrix zusammen. Eigentlich sollte dies ja eine 43x1 sein da T als Length(R) definiert ist und R in der 2. Schleife als R1(:,1:43) definiert ist. Raus kommt jedoch eine 46x1. Diese laesst sich dann natuerlich nicht mit R(:,1:K) die ja die Dimension 43x44 hat zusammenfuegen.

Liest das Program das falsch aus oder habe ich bei der Eingabe einen Fehler gemacht?

Vielen Dank!

VG
Alex
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 09.06.2010, 21:49     Titel:
  Antworten mit Zitat      
Hallo,

es könnte an LENGTH liegen, die LENGTH gibt immer die Dimension aus, welche am größten ist.

z.b 3x5 Matrix LENGHT gibt 5 zurück
7x5 Matrix LENGHT gibt 7 zurück

Also, wenn du genau weißt welche Dimension du checken willst nimm SIZE statt LENGTH

Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
Testrunner
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 21.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2010, 11:51     Titel:
  Antworten mit Zitat      
Hallo!
Vielen Dank. Das macht natürlich Sinn Smile!
Jetzt läufts...
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.