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

 Respuesta aceptada

the cyclist
the cyclist el 14 de En. de 2017
Editada: the cyclist el 14 de En. de 2017
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.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 14 de En. de 2017

Editada:

el 14 de En. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by