2010-03-12 25 views
4

Je veux faire un tableau 2D dij (i et j sont des indices). Je veux être capable de faire dij = di, j-1 + (di, j-1 - di-1, dj-1)/(4^j-1) Mon idée pour cela à faire des tableaux 1D et ensuite combinez-les dans un tableau 2D. Y a-t-il un moyen plus facile de faire cela?Comment créer un tableau 2D dans Matlab?

+1

Veuillez clarifier votre problème Quelles sont les données de départ pour la construction du tableau? –

+0

le tableau dij est un tableau 2D 0: nx0: n pour exemple dij = [0: n; 0: n] –

+0

Quelle est la taille de n? –

Répondre

6

Puisque n est 10, je certainement juste Préallouer le tableau comme ceci:

d = zeros(n,n) 

Ensuite, mettez dans votre d (1,1) élément et gérer votre première ligne explicitement (je suppose que vous n'incluez pas les termes qui traitent de la ligne précédente) avant de boucler le reste des lignes.

+3

Pour les matrices carrées 'd = zeros (n)' fonctionne également. – mtrw

2

Gardez à l'esprit que Matlab commence la numérotation de 1. Ensuite, les fonctions utiles sont

zeros(m,n) % Makes a 2D array with m rows and n columns, filled with zero 
ones(m,n) % Same thing with one 
reshape(a , m , n) % Turns an array with m*n elements into a m,n square 

Le dernier est utile si vous construisez un réseau linéaire, mais que vous souhaitez ensuite faire un carré hors de lui. . (Si vous voulez compter des colonnes au lieu de lignes, reshape(a,n,m)'

Vous pouvez également effectuer un produit externe de deux vecteurs:

> [1;2;3]*[1 2 3] 
ans = 

    1 2 3 
    2 4 6 
    3 6 9 

Pour construire en fait un tableau avec les mathématiques que vous décrivez, vous Il faudra probablement faire une boucle sur au moins un axe avec une boucle for

Questions connexes