Matrix element changing with loop
2 views (last 30 days)
Show older comments
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
Accepted Answer
Stephen23
on 16 Feb 2019
Edited: Stephen23
on 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 Comments
Stephen23
on 17 Feb 2019
Edited: Stephen23
on 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.
More Answers (0)
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!