2010-12-05 3 views
2

Ich habe den folgenden Code:MATLAB: struct.name Art und strcmp

Fonts = dir ('Fonts')

strcmp ('BELL.TTF', fonts.name)

wobei dir ('fonts') eine 33x1-Struktur zurückgibt, in der jeder Eintrag einen Namen (String), ein Datum und ein paar andere Dinge hat. Ich kann nicht herausfinden, welcher Typ fonts.name ist (wenn es ein Zellenarray oder was ist), und mein Endziel ist, in der Lage zu sein, strcmp zu verwenden, um über alle Namen zu vergleichen.

Antwort

4

fonts.name ist 33 separate Zeichenarrays. Sie möchten diese zu einem Zellenfeld zusammenfassen, damit Sie es mit strcmp verwenden können.

In Code:

fonts = dir('fonts'); 
%# use curly brackets to combine the 33 strings into a cell array 
tf = strcmp('BELL.TTF',{fonts.name}) 

tf ist eine logische Array mit 1 überall dort, wo fonts.name zu 'BELL.TTF' gleich