标题: MATLAB数据类型 [打印本页] 作者: zhangtt123 时间: 2020-1-20 16:59 标题: MATLAB数据类型 MATLAB 并不需要任何类型的声明或维度报表。 MATLAB 每当遇到一个新的变量名称,创建变量,并分配适当的内存空间。2 o; n: l+ E$ m5 [3 ^
' }5 Z, s+ q0 q2 ?% u) ?
如果变量已经存在,则MATLAB替换以新的内容的原始内容,并分配新的存储空间,在必要的情况下。 6 i5 A9 l: m2 O1 w$ ^! N' [ ) a7 l$ H) p ?例如, + @% E) V3 O# G' k# e. K& I ' F$ l1 T& Q, MTotal = 426 a' ?' N1 D* Y; G8 C/ L
上述语句创建了一个名为“Total” 的 1-1 矩阵存储值42。$ n5 \& W1 [" [: X% c! B5 Y: R
, l: |# r6 s! R" H
MATLAB中可用的数据类型1 [# s' q. p- Q7 c2 g
6 L; m0 B# X3 d) `6 b
MATLAB 提供15个基本数据类型。每种数据类型的数据存储在矩阵或阵列的形式。这个矩阵的大小或阵列是一个最低 0-0,这可以长大为任何规模大小的矩阵或数组。5 F# u2 R* S# j' m8 H
- A+ w$ z# K6 b* a5 J下表显示了在 MATLAB 中最常用的数据类型: 2 M4 G/ s; a2 ~6 W, [+ b / X* h1 N5 h8 |2 K' G, A数据类型 描述9 @: d* \( I5 m c) H
int8 8-bit signed integer2 X, y* |1 x3 b: L2 r
uint8 8-bit unsigned integer! p1 s8 ^- _! k" a/ F4 [ a. x
int16 16-bit signed integer7 {6 Z$ g v4 N; _6 F9 f
uint16 16-bit unsigned integer 4 W/ ~5 k5 ^+ Yint32 32-bit signed integer1 X4 ?7 l8 |& _0 r
uint32 32-bit unsigned integer / ~) O# O! H; H9 Dint64 64-bit signed integer( _* W& {# F4 D* c* s Y
uint64 64-bit unsigned integer2 R! ?5 Y' f2 b6 r+ Q
single single precision numerical data ; s* T. {, e* }- c, r& U; [double double precision numerical data 6 i4 r3 W6 \& E: y4 A H) d6 Ulogical logical values of 1 or 0, represent true and false respectively+ n; Z5 A# J$ x9 V
char character data (strings are stored as vector of characters) $ P% J( |/ s! {( Rcell array array of indexed cells, each capable of storing an array of a different dimension and data type& J0 {0 U, W4 |6 t/ l, `
structure C-like structures, each structure having named fields capable of storing an array of a different dimension and data type& Y" V, h9 h3 t. t9 @
function handle yiibaier to a function/ N; f4 X4 p# f
user classes objects constructed from a user-defined class $ J% i7 y8 J- b z+ U$ P9 `java classes objects constructed from a Java class4 t: l; j3 d/ b' S8 V+ H% |- L4 m, l
例子 . g% P; ]$ n! }- o' ?* b$ G' v! G/ ]% k5 S) X1 l
创建一个脚本文件,用下面的代码: * Y* ^* C. K& x) A# q; P" W , G6 i) ^2 P& e; k3 E8 d: A str = 'Hello World!' 8 R7 C' {; _' b4 S2 h4 q2 In = 2345 4 Y( F, e6 o1 T% C- s- `' M# gd = double(n): s- I# c- w9 F, e+ f
un = uint32(789.50)9 ^( X: i) _2 S5 q
rn = 5678.92347 j" s( z: `6 u( C& E
c = int32(rn) x7 u6 d1 g" }# P. x
上面的代码编译和执行时,它会产生以下结果: ( J* ]8 u) C1 L6 @/ k/ M v( ] 8 m: O! q- {8 C' t9 J; m5 N+ ystr = ( v; ~# t* L* x: I& l/ h! mHello World! , s4 V7 s& `+ G2 k1 e/ gn =8 R9 O9 ~- Z5 @1 Q
2345* D& G% w1 |/ y
d =! |( J# Z7 d: \! l5 J6 U! g
2345 0 T2 R5 c- D1 w! X/ }un = - Q' U4 l* n& i. ^$ ^ 790 X5 w' Z3 G$ p1 a2 D0 l5 s0 d$ Prn = 0 ^7 f" E2 v5 g { 5.6789e+03' z5 \, H |$ D
c =" ^5 ]: W1 m1 \/ b: L" P6 D7 N/ B
5679 . m, l9 b) L" g4 [$ x2 \( O数据类型转换( a; @$ m O- P7 C2 {" i o
8 i9 |5 G, U$ Y3 M) G) A- A( h
MATLAB 提供各种函数,用于从一种数据类型转换到另一种。下表显示的数据类型转换函数:! M) P' B6 u; m. \2 |0 O Y
# e8 T* x! Z. ?' m$ N. E函数 目的/作用 # _: K O9 Z- D# [9 _1 Uchar Convert to character array (string) 8 I! E4 X9 {1 a6 ?int2str Convert integer data to string+ ?5 J- j' Q1 x2 l
mat2str Convert matrix to string6 ?- }/ Q+ R- _: n( B
num2str Convert number to string % o. I) ~: I, G2 vstr2double Convert string to double-precision value ! U6 _, c$ s5 `3 I/ x3 wstr2num Convert string to number; o b0 s+ t ~
native2unicode Convert numeric bytes to Unicode characters & N4 V: R' W3 e/ Y4 O* O0 Wunicode2native Convert Unicode characters to numeric bytes1 e3 o3 [( ^. o7 P2 R3 p; e
base2dec Convert base N number string to decimal number6 v; a4 f; x, }2 X
bin2dec Convert binary number string to decimal number 2 a& q/ ]% L8 R y; o$ }7 J j% `dec2base Convert decimal to base N number in string / ]/ X$ y. H0 tdec2bin Convert decimal to binary number in string) m0 n9 J% c' Y6 _+ `4 Y
dec2hex Convert decimal to hexadecimal number in string- z4 l6 X( W% d) b4 T/ k. h i
hex2dec Convert hexadecimal number string to decimal number+ z: l; Q" L7 E! x
hex2num Convert hexadecimal number string to double-precision number5 L1 I: f* z+ j j- R Y
num2hex Convert singles and doubles to IEEE hexadecimal strings$ o6 X& ]# H) ~! d$ _1 |3 t
cell2mat Convert cell array to numeric array ) |* Z( @; Z- H: J2 {cell2struct Convert cell array to structure array5 H% ~0 Q3 G7 S2 o& a
cellstr Create cell array of strings from character array$ m7 ^. u% r1 E; D+ J( o
mat2cell Convert array to cell array with potentially different sized cells, ?' Q0 h+ u/ M2 |
num2cell Convert array to cell array with consistently sized cells" E3 y# E2 e3 q4 q. K' }
struct2cell Convert structure to cell array 2 a( z7 ]' @$ S0 @' R4 }测定的数据类型 " T; P/ N1 O* ?, r. t, i0 \( ~( a. f$ f3 K5 m2 E* v. l
MATLAB 提供各种函数标识数据类型的变量。: C1 J/ P; e; g2 [
- Y' u0 m) N' i, o
下表提供了确定一个变量的数据类型的函数:6 Y- P$ I6 V+ p6 Y2 j5 S2 W7 U
2 d5 |3 J5 o, N7 X: N# o
函数 目的/作用4 L1 i/ r6 F5 S; h7 }: p
is Detect state / r! V ~$ T1 E$ k- Jisa Determine if input is object of specified class" k. U$ |! A" w( U+ q: j2 O5 \/ N
iscell Determine whether input is cell array 6 P( b) ^% O; A. _, Kiscellstr Determine whether input is cell array of strings ) J0 {/ @ e/ Q& F6 B0 d) aischar Determine whether item is character array8 g8 m' \. G5 l k0 J6 V
isfield Determine whether input is structure array field3 q8 y7 m6 K6 S5 y: X, ]$ h
isfloat Determine if input is floating-yiibai array + v. C& d5 v; H& }ishghandle True for Handle Graphics object handles8 E/ z/ f3 l8 L. ?- c
isinteger Determine if input is integer array $ L; X7 k# v) H9 zisjava Determine if input is Java object% k8 e+ ~/ P5 @ k7 H& e
islogical Determine if input is logical array 6 P, P- x* Z9 C4 L2 j( s& xisnumeric Determine if input is numeric array4 b: Y" L2 E t% v* h* f
isobject Determine if input is MATLAB object ! I% f+ f* L. A/ U; fisreal Check if input is real array ; Q7 s6 Z) _7 |. A xisscalar Determine whether input is scalar / h4 B# [5 P& h. y1 c# }7 |, Jisstr Determine whether input is character array! T' ^' [8 ~" s2 x
isstruct Determine whether input is structure array6 o+ _5 e3 B" c% \9 m
isvector Determine whether input is vector3 M% \/ U) y% O3 T
class Determine class of object) q% A: v* h' w$ U. {+ S6 u
validateattributes Check validity of array! X/ b2 @- K' h- ^4 i7 w' {2 S6 i
whos List variables in workspace, with sizes and types8 m& B9 e' [- k1 q% k! J
例子* C; }$ ~/ [* A
" U/ ~; C+ ]) a; w0 }3 j. k9 `
创建一个脚本文件,用下面的代码:3 R ]; ^4 r" j; S9 T9 j
! V' C4 a& p) w% Nx = 3# A' I$ l- |6 g2 @
isinteger(x) ! H' a$ V' L j* O5 K# Wisfloat(x)* n) v Z' R6 B+ M" H B* `- H5 w
isvector(x)" m- x4 o, K+ W, p
isscalar(x) / B; E4 Q9 w2 b, L# @& q/ sisnumeric(x)$ g$ a: |( Q& e: q' E+ u. r' {
: L# Z1 @, K9 q" T# n0 Dx = 23.54 ! B5 O8 u1 U' _" Hisinteger(x)7 K- L! w% @6 L* m2 U& `
isfloat(x), U) R, ?! O7 Z# ?) U! _1 o
isvector(x) : q9 n! O, T$ P6 e. R) ~% tisscalar(x)6 A% Y: l$ O+ x9 o
isnumeric(x)- m! x! {2 Z; k; I3 L
" D, Z8 _2 @5 I7 Y3 ?
x = [1 2 3]" [$ d9 H+ j( e
isinteger(x) d+ N% r. Y& T; F9 N
isfloat(x)6 s2 [5 H/ _$ g/ V" Z% A1 f
isvector(x): R3 k( ?$ \5 R1 N
isscalar(x) ; h Q) }; P, k6 A* | 4 L% j- p$ D/ j; ox = 'Hello'* \4 ?1 K7 {& D/ u
isinteger(x)- M' e+ B; t# Q8 ]- U7 C; R
isfloat(x)5 o+ `9 H$ z0 Q( I0 X# P+ _
isvector(x) ; {/ o* K( _$ R' Jisscalar(x)3 A& z4 v/ [$ D. W. t/ c
isnumeric(x)% Q; v$ N4 h) H8 u% i4 {& P
当运行该文件,它会产生以下结果: # l6 Q/ Q( K9 P& R/ C7 r8 N% z7 P+ E. e+ J5 T! ?1 F- Z3 ~
x =7 n& A7 p4 E6 }7 r7 r% H/ G
36 c1 ?0 O% f o3 P3 \
ans =: D; P0 ?0 M$ h. H$ D
0 * T4 u/ L9 a# |4 X4 Y1 n8 U& Tans = % g2 O* H: _* Q3 B 15 ]7 Q* h. A' n6 l. I6 o/ Z
ans =! S, E+ _5 s0 V1 L( X3 c
1) @5 C# I I+ [4 H1 @
ans =, E9 K/ H" w; m9 N& ~3 W
1 8 k" ^$ @ E4 v( H% [/ Tans =: Q/ u7 z. j$ K _0 N7 M
1- P, E/ A3 ?/ ^: P; i5 O
x = 8 e9 K! k0 H8 k+ r) i" W 23.5400 0 m; e/ k7 a/ u. [ans =, C; I" V9 H7 U
0 p9 F4 l4 g3 g$ D( r0 {3 S, w( o
ans =& s- P* X& X+ J$ H2 D; n' |
1$ |# B7 h6 B* H; S, I
ans = - K L2 z' T3 M, v9 i3 X 1 4 |+ K0 E$ J8 wans = - M% S( y6 J8 n. k1 j; O 18 o9 G$ q: v0 ?! {7 n" _" a
ans = ; ~% x) D" o$ u! P 1. q! |. d. d7 N! s
x = $ d A, z, t" P. V 1 2 3" X4 _. ~% ]! I) f
ans = $ n7 s4 r! ^$ y+ t- K; |' q 0 " I2 g. _5 _8 H+ B1 uans = x, X3 V: ?7 e. c/ \ 1& }/ x" \3 }3 z0 t
ans =9 e: E, Q. ~, B, W& _
1 " V& U% L O% `* V$ lans = , a9 G3 {% C- Y6 z! V: h) w 0 2 I) W3 X Y' cx = + X/ u. D& E# Y4 x4 {3 NHello4 R/ `( W8 C$ a" i# C7 I
ans = $ N# q5 ~7 `# d 0 * E+ z' T$ W+ jans = ; k, ^& u3 s8 R6 d* L 0 ' i& ^9 z; o! e" H; gans =) I& Y& N& c5 c7 Z# R. D- q9 a
1 6 r4 v% X5 }% @9 F& _, fans =& w. ^# }4 r; R" ]& l' m3 g+ K
0' l6 e( }/ e' R' E
ans = 9 \0 T6 k7 L, H4 \1 i z+ y 02 k6 H1 o* J' l8 P' |' l
/ R2 v9 I, c) L$ ?. a( \
————————————————: z: N. ?: S6 r/ E# i! i$ @
版权声明:本文为CSDN博主「Phil__ming」的原创文章。 & P7 X0 ^5 V2 w B, H$ v, z9 ~原文链接:https://blog.csdn.net/Poseidon__ming/article/details/75092575 . D) C% Y# v, ?% s0 H* `* B" _6 o: ^) F