数学建模社区-数学中国

标题: 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

" q! B" S0 a! s
作者: 18019574874    时间: 2020-2-4 15:58
发表回复赞
1 x; Q, ?  q# v+ k6 _" A4 Q) W




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5