Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

trying to create a new vector from 2 vectors.

Asked by John

John (view profile)

on 23 Mar 2012

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)];

0 Comments

John

John (view profile)

Tags

Products

No products are associated with this question.

3 Answers

Answer by Andrei Bobrov

Andrei Bobrov (view profile)

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

0 Comments

Andrei Bobrov

Andrei Bobrov (view profile)

Answer by Jonathan Sullivan

Jonathan Sullivan (view profile)

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]

0 Comments

Jonathan Sullivan

Jonathan Sullivan (view profile)

Answer by Wayne King

Wayne King (view profile)

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.

0 Comments

Wayne King

Wayne King (view profile)

Contact us