trying to create a new vector from 2 vectors.

30 views (last 30 days)
Hello,
I have a routine below that reads in an excel file. The vector y is created. It then computes r from a function and from that y1 is computed.
I then want to create a new vector y2. This vector will contain the first 3 elements of vector y and the last 3 elements of vector y. The elements in between will come from y1.
I am getting an error
??? Error using ==> horzcat
CAT arguments dimensions are not consistent..
but the vectors y and y1 are the same size and direction.
When I type y(1:3), y1(4:end-3), y(end-2:end) separately into the command line I get the elements that I am expecting and when you sum their lengths together it equals the length of y and y1.
Would anybody know what is going wrong?
Thank you
sch_cycle=xlsread('C:\Autonomie practice\RW.xls','Input_data');
nrows = size(sch_cycle,1)-1;
x = sch_cycle(:,1);
y = sch_cycle(:,2);
h=3;
N= size(sch_cycle,1);
r=ksr(x,y,h,N)
y1=r.f';
y2 = [y(1:3) y1(4:end-3) y(end-2:end)];

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 23 Mar 2012
y = y(:);
y1 = y1(:);
y2 = [y(1:3); y1(4:end-3); y(end-2:end)];

More Answers (2)

Jonathan Sullivan
Jonathan Sullivan on 23 Mar 2012
You'll want to check the size of them. Sounds like one or more of your vectors are column vectors [Nx1]. You want to make sure they are all row vectors {1xN] if you are going to concatenate them horizontally. Either that, or use the vertical concatenation syntax as follows.
[a; b; c]

Wayne King
Wayne King on 23 Mar 2012
y is definitely a column vector, is y1 a row vector?
iscolumn(y)
isrow(y1)
If you do
y = y';
That should fix the problem.

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!