How to make an index of the points of a vector that can then be used in a matrix

2 vues (au cours des 30 derniers jours)
Ale
Ale le 30 Sep 2017
Commenté : Ale le 30 Sep 2017
This is the function I have generated: function [Points, Elements] = make1DGrid(Nel,L) %L (Lenght of domain) %Nel (Number of elements)
Points = linspace(0,L,Nel)
Elements = [Points(1:end-1);Points(2:end)] end
my function produces: Points = [0 0.33 0.66 1] Elements = [0 0.33; 0.33 0.66; 0.66 1]
But instead of creating a matrix (Elements) where the coordinates of the points are used I need to create a matrix where the index of the points are used i.e for Nel=3, and L=1 Points = [0 0.33 0.66 1] Elements = [1 2; 2 3; 3 4]
  1 commentaire
Jan
Jan le 30 Sep 2017
For Nel=3 you do not get Points = [0 0.33 0.66 1], but this is Nel=4.

Connectez-vous pour commenter.

Réponses (1)

Jan
Jan le 30 Sep 2017
Modifié(e) : Jan le 30 Sep 2017
If you need the indices instead of the values, simply use the indices instead of the values :-)
function [Points, Elements] = make1DGrid(Nel,L)
Points = linspace(0, L, Nel);
Elements = [1:Nel-1; 2:Nel].'; % Instead of: [Points(1:end-1); Points(2:end)]
end
  1 commentaire
Ale
Ale le 30 Sep 2017
Thanks so much. I thought it had to be Nel but every time I used it I kept getting errors because I wasn't using the correct syntax so you've helped a lot!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by