how do I relate two arrays with a reference point ?

Given array y=[1 2 3 5 7] and x= [-2 -1 0 1 2 ] I need to generate a code that by inserting n number of zeroz between the y vector (expanding the vector)
ie: y=[1 0 0 2 0 0 3 0 0 5 0 0 7] would also expand the size of the x array by maintaining the zero as the center value x= [-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 ] so that when the plotting the x&y values would result as a shift of the y values over the x axis with 0 as a reference.
This should work for both even and odd number of lengths of the x and y arrays.
I hope i could the expalnation was clear enough!
Cheers!

 채택된 답변

Bruno Luong
Bruno Luong 2019년 8월 17일
y=[1 2 3 5 7]; x= [-2 -1 0 1 2 ]
nz = 2; % number of zeros to be inserted
y(end+nz,:) = 0;
y = y(1:end-nz)
x = (0:length(y)-1)-(nz+1)*(find(x==0)-1)

추가 답변 (1개)

Banister
Banister 2019년 8월 17일
Not the most efficient, but,
if mod(length(y),2)
x = -ceil(length(y)/2):ceil(length(y)/2); % odd vector length
else
x = -length(y)/2:length(y)/2-1; % -1 on the other side to change zero position
end

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

제품

질문:

2019년 8월 17일

답변:

2019년 8월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by