making two different vectors the same length
Mostrar comentarios más antiguos
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 comentario
soloby
el 13 de Jun. de 2015
Respuestas (1)
Walter Roberson
el 13 de Jun. de 2015
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 comentario
Walter Roberson
el 13 de Jun. de 2015
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.
Categorías
Más información sobre Lighting, Transparency, and Shading en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!