Matrix is generating one larger than it should be

3 visualizaciones (últimos 30 días)
William
William el 1 de Mayo de 2025
Comentada: William el 1 de Mayo de 2025
Hey there, I'm trying to compare two matrixes, one of which is generated from the other. But the first matrix I make is n by x+1 larger than the second, and I can't seem to figure out what is making it one larger. I've already tried fiddling with when my for loop ends.
function [q]= gen_state(sigx,sigy,Z,T,q0) % sig x and y are noise, like wind, inside system
% Z is number of time points, Y is time between each point, q0 is the
% inital values matrix to put into A
q=zeros(4,Z+1);
x=randn(4,Z+1);
q(:,1)=q0;% SEts first q = to 0
A=[1,T,0,0;0,1,0,0;0,0,1,T;0,0,0,1]; %Creation of A matrix:
B=[0,0,0,0;0,sigx,0,0;0,0,0,0;0,0,0,sigy]; %Creation of B matrix:
for n=1:Z-1
q(:,n+1)=A*q(:,n)+B*x(:,n);
end
  2 comentarios
Les Beckham
Les Beckham el 1 de Mayo de 2025
Does it help to remove the +1 from this line?
q=zeros(4,Z+1);
William
William el 1 de Mayo de 2025
Yes! That seems to have fixed it!

Iniciar sesión para comentar.

Respuestas (1)

Matt J
Matt J el 1 de Mayo de 2025
Editada: Matt J el 1 de Mayo de 2025
Does it help to remove the +1 from this line?
Or, perhaps the loop should run from n=1:Z. Otherwise the finalcolumn of q never gets filled.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by