I am getting this error:

4 views (last 30 days)
Ashley Turato
Ashley Turato on 22 Apr 2016
Answered: Image Analyst on 22 Apr 2016
I am trying to use the following Matlab function:
function [ N,n ] = rn( t )
N=size(t,2); rand('seed',0);
n(1)=rand-0.5; for i=2:N;
n(i)=0.3*n(i-1)+1.5*(rand-0.5);
end
with this script:
clear all
clc
t=0:0.02:10;
x=0.5.*(ur(t-2)-2*ur(t-4)+ur(t-6));
[A,B]=rn(t);
y=B+x; %adding the noise to the triangular pulse signal
plot(t,y);
however, I am getting the following error:
Subscript indices must either be real positive integers or logicals.
Error in rn (line 7)
n(i) = 0.3*n(i-1)+1.5*(rand()-0.5);
Error in engg177parte (line 5)
[A,B]=rn(t);
Why is this error occuring?
  1 Comment
Star Strider
Star Strider on 22 Apr 2016
Running only that loop (and creating a ‘t’ vector), I cannot reproduce that error.

Sign in to comment.

Answers (2)

J. Webster
J. Webster on 22 Apr 2016
I don't get an error, are you sure the code above is what you have in your program?

Image Analyst
Image Analyst on 22 Apr 2016
In my file, test3.m I put this:
function test3
% clear all
clc
t=0:0.02:10;
x=0.5.*(ur(t-2)-2*ur(t-4)+ur(t-6));
[A,B]=rn(t);
y=B+x; %adding the noise to the triangular pulse signal
plot(t,y);
function [N, n] = rn(t)
N=size(t,2);
rand('seed',0);
n(1)=rand-0.5;
for i=2:N
n(i)=0.3*n(i-1)+1.5*(rand-0.5);
end
and I get this:
Undefined function or variable 'ur'.
Error in test3 (line 5)
x=0.5.*(ur(t-2)-2*ur(t-4)+ur(t-6));
as you can see, you forgot to tell us what you're using for ur. I'll check back and try again later once you tell me what ur is.

Community Treasure Hunt

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

Start Hunting!