Matrices Dimensions Not Consistent when t=0:10
3 views (last 30 days)
Show older comments
Hi,
I don't understand why it says it's not consistent. It's a 4*4 matrix. Only the element depents on t grows, but not the whole matrix?
So if I want to grow it, I have to use for loop? Thanks!
t= 1:10;
psm_x_dsr = [1 0 0 0.25*(1-cos(pi*t));
0 1 0 0.25*(1-sin(pi*t));
0 0 1 0;
0 0 0 1];
Error using vertcat
Dimensions of matrices being concatenated are not consistent.
Error in main (line 15)
psm_x_dsr = [1 0 0 0.25*(1-cos(pi*t)); 0 1 0 0.25*(1-sin(pi*t)); 0 0 1 0; 0 0 0 1]';
0 Comments
Accepted Answer
KSSV
on 3 Dec 2018
YOu need to store the result into a 3D matrix.
t= 1:10;
nt = length(t) ;
psm_x_dsr = zeros(4,4,nt) ;
for i = 1:nt
psm_x_dsr(:,:,i) = [1 0 0 0.25*(1-cos(pi*t(i)));
0 1 0 0.25*(1-sin(pi*t(i)));
0 0 1 0;
0 0 0 1];
end
0 Comments
More Answers (1)
Walter Roberson
on 3 Dec 2018
Edited: Walter Roberson
on 11 Dec 2018
t=1:10 does not tell MATLAB that t is a scalar variable whose values will be decided later but will be in the range 1 through 10.
t=1:10 tells MATLAB that you want to right now make t a vector with the values 1 2 3 4 5 6 7 8 9 10 stored in it.
with t being a vector pi*t is a vector and cos() of that is a vector and 1 minus cos is a vector and 1/4 times that is a vector .
Therefore [1 0 0 0.25etc] is a vector of length 13 not a vector of length 4.
If you want placeholder variables use the symbolic toolbox or create a function
0 Comments
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!