# Shift data in the negative x direction then multiply shifted data with other plot

2 views (last 30 days)
monkey_matlab on 18 Feb 2016
Commented: Star Strider on 19 Feb 2016
Hello,
I have two plots from a simulated loop. I wanted to shift the data in plot 2 in the negative x direction, then multiply the shifted data with plot 1. How can I go about doing that? I have attached my data file.
Here is the code that I have so far:
% Read the file and store into matrix v
v=csvread('data_1.csv');
% Frequency vector
freq1 = v(:,1);
plot1 = v(:,2);
freq2 = v(:,3);
plot2 = v(:,4);
freq2_shifted = freq2*.5;
semilogx(freq1,plot1);
ylim([-20 10]);
grid on;
hold on
semilogx(freq2,plot2);
semilogx(freq2_shifted,plot2);
legend('plot 1','plot 2','shifted');
hold off
##### 2 CommentsShow 1 older commentHide 1 older comment
Star Strider on 19 Feb 2016
No worries.
See my Comment.

Sign in to comment.

### Accepted Answer

Star Strider on 18 Feb 2016
The circshift function would be my approach, but I don’t know what you intend by ‘shift’.
##### 9 CommentsShow 8 older commentsHide 8 older comments
Star Strider on 19 Feb 2016
My pleasure.
I am not certain how you shifted the frequencies, since you didn’t describe that. If you want to shift the data with respect to the frequencies, that would be easy: just do a circshift on the data, leaving the frequencies unshifted, then trim the last values from all records to eliminate the shifted value and last points from the other records. (An alternative would be to just trim the shifted data and then to use interp1 with the 'extrap' option to ‘create’ the missing shifted data. Your data are smooth enough to allow that.)
Or, you can shift the frequencies and keep the data unchanged. Your call.

Sign in to comment.

### Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!