How can I write the following matrix
I define n=100
And I generate the following code
D= toeplitz ([0 1 zeros(1, n-2) -1]/ (2*h))
but I get wrong matrix. How can I correct it?

6 comentarios

Sindar
Sindar el 7 de Mayo de 2020
try diag (good for small problems) or spdiag (better examples)
Zeynep Toprak
Zeynep Toprak el 7 de Mayo de 2020
please can you write in a clear way. I am new learner of matlab, and I try to learn it by myself. So, I do not know how to use what you said. Thanks a lot.
Sindar
Sindar el 7 de Mayo de 2020
click the links and read the examples
Sindar
Sindar el 7 de Mayo de 2020
I'd been using Matlab for years and still found it useful
Zeynep Toprak
Zeynep Toprak el 7 de Mayo de 2020
okay, thanks for helping, but it is very difficult. Thanks a lot again.
Gokberk Yildirim
Gokberk Yildirim el 16 de Mayo de 2020
Actually, it can be done with this Zeynep.
c = [0 -1 zeros(1,n-3)];
r = [0 1 zeros(1,n-3)];
D = toeplitz(c,r) / (2*h)

Iniciar sesión para comentar.

 Respuesta aceptada

John D'Errico
John D'Errico el 7 de Mayo de 2020
Editada: John D'Errico el 7 de Mayo de 2020

0 votos

Try this:
n = 100;
D = (diag(ones(n-1,1),1) - diag(ones(n-1,1),-1))/(2*h);
You can also use spdiags. or sparse, or many other tools. But diag as I did it above is about the simplest way.

1 comentario

Zeynep Toprak
Zeynep Toprak el 7 de Mayo de 2020
Many thanks for your great help!! :) I use this matrix in this question my question is here. But I get an error message. Please can you take a look at it? (This is not assignment or something else like this. On these lockdown days, I try to learn matlab by myself, and I have no one to ask or to learn) Many thanks again.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 7 de Mayo de 2020

Comentada:

el 16 de Mayo de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by