Non lo trovo affatto intuitivo. In Matematica esistono vettori di 1 dimensione (anche se sono isomorfi con scalari). Inoltre, una matrice può perfettamente avere dimensioni 1x1.
È vero che un singolo numero può essere considerato uno scalare, un 1-vettore o una matrice 1x1. guarda Matlab è:
- Uno scalare è considerato una matrice 1x1
- Un n -vector dista 1 x n o n x 1 matrice
Più in generale: le dimensioni finali singleton non contano. Ad esempio, un array 3D di dimensioni 2x3x4 può anche essere considerato, ad esempio, un array 5D di dimensioni 2x3x4x1x1.Questo funziona senza errori:
>> a = rand(2,3,4);
>> a(2,2,2)
ans =
0.2575
>> a(2,2,2,1,1)
ans =
0.2575
Ora, se si vuole verificare se A
è un vettore, matrice o array multidimensionale con più di un elemento, utilizzare
numel(A)>1
Il La funzione numel
restituisce il numero di elementi del suo argomento di input.
fonte
2014-08-29 20:53:20
Inoltre, per le matrici vuote, solo 'ismatrix' return' true' per '[]'. Tuttavia, sia 'ismatrix' che' isvector' restituiscono 'true' per il vuoto' zeros (1,0) 'o è trasposto. Questo è perfettamente in linea con la tua risposta, ad esempio, 'n' può essere' 0'. – horchler
@horchler Buon punto! –