shift to left sequence

hi. i want to shift my sequence to left but there is a problem.
clc;
clear all;
close all;
% our domain in 11
n = 0:10;
x = cos (n*pi/12);
% shift x to left 2 unit
x2 = [x 0 0];
y = 2*x;
y2 = 2*x2;
d = y - y(-2:11-2);
% do should be = 0
stem (n,y2)
the problem is i can't enter a negative value to y(-2:9);
how can i change that line?
-------------------------------------------------------
errore:
Array indices must be positive integers or logical values.
Error in Untitled (line 14)
d = y - y(-2:11-2);

1 Comment

I have no idea what you want to do. Please provide and example. [1 2 3 4] goes to what?

Sign in to comment.

Answers (1)

Ameer Hamza
Ameer Hamza on 21 Oct 2020
Edited: Ameer Hamza on 21 Oct 2020
n = 0:10;
x = cos (n*pi/12);
y = circshift(x, 2)

3 Comments

HADIMARGO's "Answer" moved here:
thank you Mr. Ameer. But i don't want to use this function.
i want to shift with this structure :
x2 = [ x 0 0];
also this is not my main problem.
my main problem is how to use y(-2:11-2); with that error.
Negative indexes are not supported in MATLAB like they do in python. MATLAB supports something like the following if that helps
n = 0:10;
x = cos (n*pi/12);
y = x([end-1:end 1:end-2])

Sign in to comment.

Tags

Asked:

on 21 Oct 2020

Commented:

on 21 Oct 2020

Community Treasure Hunt

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

Start Hunting!