2017-08-25 1 views
0

J'ai une matrice de cellules (3 x 4), appelée sortie, contenant une matrice 1024 x 1024 dans chaque cellule. Je veux tracer les 4 matrices dans ouput {1 ,:}. De plus, j'ai une structure, appelée dinfo, qui contient de manière correspondante les noms de chaque matrice (champ avec des noms de matrice = "nom"). Je veux que chaque image soit intitulée avec son nom. Voici le code que j'ai écrit jusqu'ici:Génération d'une image à partir d'une cellule à l'aide d'Imagesc Matlab

for i = 1:length(output{1,:}) 
    figure 
    imagesc(output{1,i}); 
    colormap('jet') 
    colorbar; 
    title(num2str(dinfo.name(i))) 
end 

Je continue d'obtenir l'erreur que "longueur a trop d'arguments d'entrée". Si je change le code pour éviter l'erreur liée fonction de la longueur:

for i = 1:4 
    figure 
    imagesc(output{1,i}); 
    colormap('jet') 
    colorbar; 
    title(num2str(dinfo.name(i))) 
end 

Je reçois l'erreur «prévue une sortie d'une accolade ou une expression d'indexation de points, mais il y avait 4 résultats ».

Avez-vous des idées sur la façon dont je pourrais résoudre ces deux erreurs?

Merci pour votre temps :)

Répondre

1

output{1,:} est un comma-separated list; il contient les matrices 1024 de la première ligne de output, donc length a 1024 arguments. La meilleure façon d'obtenir le nombre de colonnes utilise size(...,2):

for i = 1:size(output,2) 
    figure 
    imagesc(output{1,i}); 
    colormap('jet') 
    colorbar; 
end 

En ce qui concerne la deuxième erreur, il y a quelque chose de mal avec dinfo.name; probablement, c'est aussi une liste séparée par des virgules car dinfo est un tableau de structure. Essayez d'utiliser dinfo(i).name au lieu de dinfo.name(i).

+0

Fantastique! J'apprécie vraiment votre réponse concise et utile! – itend