what is wrong with my code? vertcat error

t = [0:0.4:40];
a = [20.*sin(t); 20.*cos(t); 0];
b = [0; 0; (10-((t.^2)/16))];
s = a+b
It gives me: Error using vertcat Dimensions of matrices being concatenated are not consistent. what is wrong?

1 Kommentar

Stephen23
Stephen23 am 30 Okt. 2017
Bearbeitet: Stephen23 am 30 Okt. 2017
You are trying to concatenate vectors with different numbers of columns:
>> size(t)
ans =
1 101
>> size(0)
ans =
1 1
t has 101 columns (as do sin and cos outputs too), whereas 0 has one column. It is not possible to vertically concatenate arrays with different numbers of columns.

Melden Sie sich an, um zu kommentieren.

Antworten (3)

M
M am 30 Okt. 2017

0 Stimmen

You are trying to define a matrix that can not exist.
In your case, t is a vector of dimension 101
size(t)
ans =
1 101
and so is
20.*sin(t)
but when you write
a = [20.*sin(t); 20.*cos(t); 0];
0 is a scalar of dimension
What you should do is have a look at the function
zeros(M,N) or zeros([M,N]) is an M-by-N matrix of zeros.
Rik
Rik am 30 Okt. 2017

0 Stimmen

The dimensions of matrices being concatenated are not consistent. t is a row-vector, 0 is not.
Apart from that, a will have 203 elements, while b will have only 103 elements, so a+b will fail.
Puneet
Puneet am 6 Apr. 2024

0 Stimmen

A_trans = (T * [A; 1])';
Error using vertcat

1 Kommentar

DGM
DGM am 6 Apr. 2024
You're trying to concatenate an array A, and the scalar 1. A has more than one column.

Melden Sie sich an, um zu kommentieren.

Kategorien

Gefragt:

am 30 Okt. 2017

Kommentiert:

DGM
am 6 Apr. 2024

Community Treasure Hunt

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

Start Hunting!

Translated by