Matrix element changing with loop
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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
Risposta accettata
Stephen23
il 16 Feb 2019
Modificato: Stephen23
il 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 Commenti
Stephen23
il 17 Feb 2019
Modificato: Stephen23
il 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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!