Storing variables without overwriting them

Hello guys,
I made a piece of code that run through all the elements of each row and calculate the convolution. my problem is how can I store the previous answers without overwriting them
A=[1,2;3,4];
v=[1 -2 1];
y=[];
for i=1:length(A)
x=A(i,:);
for c=1:2
y=conv(v,x);
end
hold on
end
The result should be a matrix exp
result
1 0 -3 2
3 -2 -5 4
instead I only get the last row
3 -2 -5 4

 Accepted Answer

Do this instead
y(i,:)=conv(v,x);
You should probably also preallocate the memory for y before the loop, like
y = zeros(2,4)
or however you would determine the final dimensions. "Growing" the array row-by-row is poor memory management in MATLAB, and can lead to significantly slower execution time for large arrays.
Also, I am not sure what you expect the "hold on" command to be doing there. That would only be related to plotting.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 14 Jan 2017

Edited:

on 14 Jan 2017

Community Treasure Hunt

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

Start Hunting!