Matrix element changing with loop
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hans123
am 16 Feb. 2019
Bearbeitet: Stephen23
am 17 Feb. 2019
I keep getting Dimensions of matrices being concatenated are not consistent error.
for k=1:61
a(:,k)=angle(k,:);
A=[cosd(5) -sind(a); -sind(5) cosd(a)];
x=A\B;
end
I don't get what I am doing wrong
Akzeptierte Antwort
Stephen23
am 16 Feb. 2019
Bearbeitet: Stephen23
am 16 Feb. 2019
5 is a scalar. A scalar has size 1x1.
On the second loop iteration a has size Nx2 (we don't know the actual size because you did explain what size angle is).
Then you calculate some trig functions using those 5 and a, giving 1x1 and Nx2 arrays. You then try to concatenate those arrays like this:
[1x1,Nx2;1x1,Nx2]
which is an error if N>1 because then the number of rows are different, which means that those arrays cannot be concatenated together horizontally:
- To horizontally concatenate arrays they must have the same number of rows.
- To vertically concatenate arrays they must have the same number of columns.
Check the sizes of the arrays that you are trying to concatenate and you will find that one/both of those conditions are not fulfilled.
2 Kommentare
Stephen23
am 17 Feb. 2019
Bearbeitet: Stephen23
am 17 Feb. 2019
This avoids the error:
a = angle(k);
Only you can decide if this is correct or not.
Also note that you completely discard all x arrays except fot the last one, making your entire for loop superfluous. You might want to use some indexing into an output array.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!