tutorial student requisitos precio online descargar matlab

student - ¿Cómo usar Hash Tables(diccionarios) en MATLAB?



matlab tutorial (2)

Necesito acceder a los datos por índice de cadena, como tabla (''uno'')% devuelve 1 . ¿Existe tal estructura de datos en MATLAB? ¿Cómo se implementa?


En versiones recientes de MATLAB, está la estructura de datos containers.Map . Vea los contenedores de MATLAB Map para más. Esto elimina algunas de las restricciones al usar STRUCTs. Por ejemplo

c = containers.Map c(''foo'') = 1 c('' not a var name '') = 2 keys(c) values(c)


Una estructura puede usarse como una especie de tabla hash:

>> foo.(''one'')=1 foo = one: 1 >> foo.(''two'')=2; >> x = ''two''; >> foo.(x) ans = 2

Para consultar si una estructura contiene un campo particular (clave), use isfield :

>> isfield(foo,''two'') ans = 1

La desventaja de este esquema es que solo las cadenas que también son nombres válidos de las variables de Matlab se pueden usar como claves. Por ejemplo:

>> foo.(''_bar'')=99; ??? Invalid field name: ''_bar''.

Para evitar esta restricción, use una de las soluciones en la pregunta vinculada por Oli.