Je suis à mi-chemin à trouver une solution à ma question, mais j'ai le sentiment que ce ne sera pas très efficace. J'ai une structure cellulaire bidimensionnelle de tableaux de longueur variable qui est construite de manière non fonctionnelle dans Matlab que je voudrais convertir en Clojure. Voici un exemple de ce que je suis en train de faire:Quelle est la meilleure façon de traduire la génération d'un tableau de cellules multidimensionnel de Matlab à Clojure?
pre = cell(N,1);
aux = cell(N,1);
for i=1:Ne
for j=1:D
for k=1:length(delays{i,j})
pre{post(i, delays{i, j}(k))}(end+1) = N*(delays{i, j}(k)-1)+i;
aux{post(i, delays{i, j}(k))}(end+1) = N*(D-1-j)+i; % takes into account delay
end;
end;
end;
Mon plan actuel de mise en œuvre est d'utiliser 3 boucles où le premier est initialisé avec un vecteur de N vecteurs d'un vecteur vide. Chaque sous-boucle est initialisée par la boucle précédente. Je définis une fonction séparée qui prend le vecteur global et les sous-indices et la valeur et renvoie le vecteur avec un sous-vecteur mis à jour.
Il doit y avoir une façon plus intelligente d'utiliser 3 boucles/répétitions. Peut-être que certains réduisent la fonction qui simplifie la syntaxe en utilisant un accumulateur.
Je ne suis pas Bien sûr, si je vais utiliser l'aset ou la version plus fonctionnelle ... mais j'imagine que le paramètre de tableau fonctionnel pourrait être transformé en une macro ou une fonction qui simplifie les choses. Merci. – Nick