Matrix is generating one larger than it should be

3 visualizzazioni (ultimi 30 giorni)
William
William il 1 Mag 2025
Commentato: William il 1 Mag 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

Risposte (1)

Matt J
Matt J il 1 Mag 2025
Modificato: Matt J il 1 Mag 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.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Tag

Prodotti


Release

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by