making two different vectors the same length

x1_lower = <1x100> vector
x2_lower = <1x110> vector
Im trying to plot (x1_lower+ x2_lower, y)
what's the best way of making them an equal length? or is there a way to get around this? thanks

댓글 수: 1

soloby
soloby 2015년 6월 13일
Ok, let me ask a simpler question.
how do i add zeroes to the beginning or these end of the vectors to the same length as something like x = -10:.1:10

댓글을 달려면 로그인하십시오.

답변 (1개)

Walter Roberson
Walter Roberson 2015년 6월 13일

3 개 추천

minlen = min(length(x1_lower), length(x2_lower));
plot(x1_lower(1:minlen) + x2_lower(1:minlen), y)
However I would in general expect that to fail as y would probably not be the same length.
The above code assumes that the two vectors are on the same origin and spacing, so the extra elements for x2_lower represent elements beyond the end of x1_lower and each element x1_lower(K) corresponds to x2_lower(K). If that is not the case then you need information about the origin and increments in order to align the two.

댓글 수: 1

To pad with zeros at the end:
maxlen = max(length(x1_lower), length(x2_lower));
x1_lower(end+1:maxlen) = 0;
x2_lower(end+1:maxlen) = 0;
To pad with zeros at the beginning:
maxlen = max(length(x1_lower), length(x2_lower));
x1_lower = [zeros(1,maxlen - length(x1_lower)), x1_lower];
x2_lower = [zeros(1,maxlen - length(x2_lower)), x2_lower];
This code should work no matter which of the two is shorter.

댓글을 달려면 로그인하십시오.

카테고리

질문:

2015년 6월 13일

댓글:

2015년 6월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by