How do I save a value from an iteration of a for loop?

2 views (last 30 days)
I am trying to save the value of en from this Least Mean Square algorithm after each loop, but my attempt at it does not seem to be working. How can I fix this?
close;
clear;
clc;
load sig.mat; % loads variables x and y
N = 5; % filter length
u = .01; % learning rate
h = zeros(1, N);
hold = zeros(1,500);
for n = 1:500
if n-N < 1
xn = [x(n:-1:1); zeros(N-n, 1)];
else
xn = x(n:-1:n-N+1);
end
en = y(n) - h*xn;
hold = en; % Why is this not saving en after each iteration?
h = h + (u*en*xn)';
end

Accepted Answer

Star Strider
Star Strider on 25 Apr 2018
First, rename the ‘hold’ variable to something that does not overshadow a MATLAB function. (I renamed it ‘env’.) Then, subscript it:
env = zeros(1,500);
. . .
en = y(n) - h*xn;
env(n) = en;

More Answers (0)

Categories

Find more on Function Creation 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!