Clear Filters
Clear Filters

how to solve this error

1 view (last 30 days)
brito antony
brito antony on 28 Oct 2023
Answered: Arun on 1 Nov 2023
Array indices must be positive integers or logical values.
clear all
clc
n = [-5:5];
h = [1 0 2 0 3 0 0 0 0 0 0];
y = 3 * h(-n-3);
stem(n,y)
  1 Comment
Dyuman Joshi
Dyuman Joshi on 28 Oct 2023
The error is clear - Indices in MATLAB can not be negative or non-integeral values.
They must be postivie integers or logical values (as the error states).
You are using (-n-3) as indices which has negative values.
Also, h is mapped for [-5 5], whereas (-n-3) ranges from [-8 2]. What should be the values when n is -8, -7, or -6?

Sign in to comment.

Answers (1)

Arun
Arun on 1 Nov 2023
Hey Brito,
The variable 'h' has index values ranging from 1 to 11. To obtain the desired results, you may consider modifying the code as shown in the following snippet.
n = [-5:5];
h = [1 0 2 0 3 0 0 0 0 0 0];
y = 3 * h(-(-n-3-3)); % or y = 3 * h(n+6);
y
y = 1×11
3 0 6 0 9 0 0 0 0 0 0
stem(n,y)
Hope this helps.

Categories

Find more on Matrices and Arrays 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!