How to iterate diagonal with alternating values?

1 visualización (últimos 30 días)
Karen Smith
Karen Smith el 2 de En. de 2022
Comentada: Matt J el 2 de En. de 2022
Hi everyone! I have a question about iterating diagonally across a matrix I create. Here is the code I have so far. I am a beginner at Matlab, so I am trying to do this with a for loop, but getting stuck! If anyone can please help me do this it would be greatly appreciated! I am trying to get the values in green to be set to the value of e_p, thank you so much !!!
N1=2;
N2=4;
nband=1;
n=(N1*N2)*2*nband;
e=1;
e_p=2;
e_pp=3;
t=4;
tp=5;
HM = zeros(n);
for ii=2:n
HM(ii,ii) = e;
end

Respuestas (1)

Matt J
Matt J el 2 de En. de 2022
One way,
d=ones(1,n);
d(1)=0;
d([2:4:end, 3:4:end])=e_p;
HM=diag(d);
  2 comentarios
Karen Smith
Karen Smith el 2 de En. de 2022
Hi! Thank you, is it possible to do this with a for loop? I have other for loops in my code that won't run with this line in it
Matt J
Matt J el 2 de En. de 2022
HM = zeros(n);
for ii=1:n
HM(ii,ii) = d(ii);
end

Iniciar sesión para comentar.

Categorías

Más información sobre Operating on Diagonal Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by