Clear Filters
Clear Filters

Info

This question is closed. Reopen it to edit or answer.

Hi, can you help me!!! I 've got a problem when i went to calculate this matrix:

1 view (last 30 days)
A= [Aa 0;-Af*Ca Af]
With
Aa=[-0.01320 0 0 9.8100 0 0 0 0;-0.08560 -0.9903 -241.7000 0 21.7500 0.9504 18.0800 -0.00073;-0.00017 0.0159 -0.9883 0 -0.4850 -0.0323 -3.3200 -0.10450;0 0 1 0 0 0 0 0;0 0 0 0 0 1 0 0;0.08420 0.8897 -3.0300 0 -164.6000 -4.2050 -28.0500 -0.59690;0 0 0 0 0 0 0 1;-0.02920 -0.1723 -5.0970 0 -2.8540 -0.4456 -430.5000 -2.15500];
Af=diag([-10 -10]);
  5 Comments
yousra yahia
yousra yahia on 1 May 2018
Edited: Walter Roberson on 1 May 2018
Af=diag([-10 -10]);
Ca=[-0.05540 -0.6511 5.1620 0 112.2000 3.0360 152.9000 1.1390;-0.00804 -0.0850 0.2943 0 -2.9510 -0.0590 -26.5500 -0.1560];
Aa=[-0.01320 0 0 9.8100 0 0 0 0;-0.08560 -0.9903 -241.7000 0 21.7500 0.9504 18.0800 -0.00073;-0.00017 0.0159 -0.9883 0 -0.4850 -0.0323 -3.3200 -0.10450;0 0 1 0 0 0 0 0;0 0 0 0 0 1 0 0;0.08420 0.8897 -3.0300 0 -164.6000 -4.2050 -28.0500 -0.59690;0 0 0 0 0 0 0 1;-0.02920 -0.1723 -5.0970 0 -2.8540 -0.4456 -430.5000 -2.15500];
A=[Aa 0;-Af.*Ca Af];
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
Error in Matrice (line 4)
A=[Aa 0;-Af.*Ca Af];

Answers (1)

James Tursa
James Tursa on 1 May 2018
Edited: James Tursa on 1 May 2018
You need to tell MATLAB how many 0's are being concatenated in the upper right corner. E.g.,
A = [Aa zeros(size(Aa,1),size(Af,2));-Af*Ca Af];
  3 Comments
the cyclist
the cyclist on 1 May 2018
Edited: the cyclist on 1 May 2018
This code, which is exactly what you posted (with a bit of reformatting), and James' correction, worked for me.
Af=diag([-10 -10]);
Ca=[-0.05540 -0.6511 5.1620 0 112.2000 3.0360 152.9000 1.1390;
-0.00804 -0.0850 0.2943 0 -2.9510 -0.0590 -26.5500 -0.1560];
Aa=[-0.01320 0 0 9.8100 0 0 0 0;
-0.08560 -0.9903 -241.7000 0 21.7500 0.9504 18.0800 -0.00073;
-0.00017 0.0159 -0.9883 0 -0.4850 -0.0323 -3.3200 -0.10450;
0 0 1 0 0 0 0 0;
0 0 0 0 0 1 0 0;
0.08420 0.8897 -3.0300 0 -164.6000 -4.2050 -28.0500 -0.59690;
0 0 0 0 0 0 0 1;
-0.02920 -0.1723 -5.0970 0 -2.8540 -0.4456 -430.5000 -2.15500];
A = [Aa zeros(size(Aa,1),size(Af,2));-Af*Ca Af];
Note that John changed
-Af.*Ca
to
-Af*Ca
to make it a matrix multiplication. Your code, which would do element-by-element multiplication would fail because you cannot do that between a 2x2 and a 2x8. Whether that type of multiplication is what you need is up to you to determine.
yousra yahia
yousra yahia on 2 May 2018
Thank you, i got the result but i had an other problem :
Af=diag([-10 -10]) Da=[4.3970 33.4300; -0.4182 -1.1780] Ba=[0 0;6.8060 9.2750; -1.7700 -0.7986; 0 0;0 0; 6.1130 -42.0300; 0 0; -20.2700 -13.2900] B=[Ba -Af*Da]
>> Af=diag([-10 -10]) Da=[4.3970 33.4300; -0.4182 -1.1780] Ba=[0 0;6.8060 9.2750; -1.7700 -0.7986; 0 0;0 0; 6.1130 -42.0300; 0 0; -20.2700 -13.2900] B=[Ba -Af*Da]
Af =
-10 0
0 -10
Da =
4.3970 33.4300
-0.4182 -1.1780
Ba =
0 0
6.8060 9.2750
-1.7700 -0.7986
0 0
0 0
6.1130 -42.0300
0 0
-20.2700 -13.2900
Error using horzcat Dimensions of matrices being concatenated are not consistent.

This question is closed.

Tags

No tags entered yet.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!