数据类型

1数值类型

@整数

*浮点型转整数型的转换函数,将数值转换为最为接近的整数值,若分数部分为0.5时,转换为最接近的两个整数中绝对值较大的一个。

*取整函数:

floor(x)向下取整

ceil(x)向上取整

round(x)取最接近的整数

fix(x)向0取整

@浮点数类型

系统默认的数值类型是double的,所以使用double时可以省略double符号
double类型的数值与其他类型的数值运算时,结果为其他类型的数值,single类型的数值不能和整型直接运算,各种不同位数的整形之间也不能直接运算。

@复数

复数由实部和虚部两部分构成,在Matlab中,字符i或j默认作为虚部标志,关于复数的相关函数如下:

函数 说明 函数 说明
complex(a,b) 构造以a为实部,以b为虚部的复数 i,j 虚部标识
real(z) 返回复数z的实部 image(z) 返回复数z的虚部
abs(z) 返回复数z的模 angle(z) 返回复数z的辅角
conj(z) 返回复数z的共轭复数

@无穷量Inf、非数值量NaN

2逻辑类型
@关系运算符

==等于   ~=不等于   =赋值

@逻辑运算符

&与    |或    ~非

3字符和字符串
一个字符串储存在一个行向量中

字符串一般是ASCII值的数值数组,字符串里的每个字符是数组里的一个元素

单引号括起来string='every good boy does fun'

字符串内的单引号string='It''s not the manual!'            显示string=

It's not the manual!

字符串数组主要用于可视化编程内容,如界面设计和图形绘制。

1.字符串变量的创建

字符变量的创建方法是:在指令窗口中先把待建的字符放在“单引号对”中,再按回车键。注意,该“单引号对”必须在英文状态下输入。这“单引号对”是MATLAB用来识别字符串变量所必须的。如:
>>a='This is an example.'
a =
    This is an example.
>>msg = 'You''re right!' %创建带单引号的字符串
msg =
    You're right!

2.字符串数组的标识

字符串变量的每个字符(英文字母、空格和标点都是平等的)占据一个元素位,在数组中元素所处的位置用自然数标识。如:

>>a='Thisis an example.'
>>b=a(1:4) % 提出一个子字符串
b =
    This
ra=a(end:-1:1) % 字符串的倒排
ra =
    .elpmaxe na si sihT
又如:
>>A='这是一个算例。';
>>B=size(A) % 符号数组 A 的“大小”
B =
    1   7
>>C=A([5 6]) % 提出一个子字符串
C =
    算例

3.字符串的ASCII码

字符串的存储是用ASCII码实现的。指令abs和double都可以用来获取串数组所对应的ASCII码数值数组。指令char可把ASCII码数组变为串数组。如
>>d=double(a)
d =
    84 104 105 115 32 105 115 32 97 110 32 101 120 97 109 112108 101 46
>>char(d)
ans =
    This is an example.

例:对字符串ASCII码数组的操作:使字符串中字母全部大写
>>w=find(a>='a'&a<='z');%找出串数组a中,小写字母的元素位置。
>>d(w)=d(w)-32; %大小写字母ASCII值差32用数值加法改变部分码值。
>>char(d) %把新的ASCII码翻成字符
ans =
     THIS IS AN EXAMPLE.

4.字符串数组的运算(主要是连接)

4.1 连接成一行

>>Aa=[A,a]    可将字符串连接成一行长字符串  
Aa =
    这是一个算例。This is an example.
>>name = strcat('Thomas',' R.',' Lee') %连接两个字符串,每个字符串最右边的空格被裁切
name =
      Thomas R. Lee

4.2多个字符串形成多行字符串矩阵

l         用中括号则要求两个字符串一般长

>> Aa=[A;a];  %操作错误,不能成生成二行的矩阵,长度不一致

l         用char或strvcat函数进行连接

>>D=strvcat('Hello','Yes','No','Goodbye')%利用串操作函数(chat也可以)创建多行串数组, 连接多行字符串,每行长度可不等,自动把非最长字符串最右边补空格, 使与最长字符串相等,会忽略空字符串。
D =
    Hello
    Yes
    No
    Goodbye

5. 字符串替换和查找

strrep—进行字符串替换,区分大小写
>>strrep(str1,str2,str3)%它把str1中所有的str2字串用str3来替换
strfind(str,patten) %查找str中是否有pattern,返回出现位置,没有出现返回空数组
findstr(str1,str2) %查找str1和str2中,较短字符串在较长字符串中出现的位置,没有出现返回空数组
strmatch(patten,str) %检查patten是否和str最左侧部分一致
strtok(str,char) %返回str中由char指定的字符串前的部分和之后的部分,

6.常用字符串操作函数

blanks(n)—创建有n个空格组成的字符串
deblank(str)—裁切字符串的尾部空格
strtrim(str)—裁切字符串的开头和尾部的空格,制表,回车符
lower(str)—将字符串中的字母转换成小写
upper(str)—将字符串中的字母转换成大写
sort(str)—按照字符的ASCII值对字符串排序
num2str—将数字转换为数字字符串
str2num—将数字字符串转换为数字
mat2str—将数组转换成字符串
int2str—把数值数组转换为整数数字组成的字符数组

7.其他字符串操作函数

strcmp—比较两个字符串是否完全相等,是,返回真,否则,返回假
strncmp—比较两个字符串前n个字符是否相等,是,返回真,否则,返回假
strcmpi—比较两个字符串是否完全相等,忽略字母大小写
strncmpi—比较两个字符串前n个字符是否相等,忽略字母大小写
isletter—检测字符串中每个字符时否属于英文字母
isspace—检测字符串中每个字符是否属于格式字符(空格,回车,制表,换行符等)
isstrprop—检测字符每一个字符是否属于指定的范围.

【例】综合例题:在MATLAB计算生成的图形上标出图名和最大值点坐标。

clear

a=2;

w=3;

t=0:0.01:10;

y=exp(-a*t).*sin(w*t);

[y_max,i_max]=max(y);

t_text=['t=',num2str(t(i_max))];          %   <7>

y_text=['y=',num2str(y_max)];             %   <8>

max_text=char('maximum',t_text,y_text);   %   <9>

%

tit=['y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)'];          %<11>

plot(t,zeros(size(t)),'k')

hold on

plot(t,y,'b')

plot(t(i_max),y_max,'r.','MarkerSize',20)

text(t(i_max)+0.3,y_max+0.05,max_text) %   <16>

title(tit),xlabel('t'),ylabel('y'),holdoff

4函数句柄
间接调用

Function_Handle=@Function_Filename;

Function_Filename为对应的M文件或者内部函数

Function_Handle为变量名,后续运算可直接通过Function_Handle(x)来实现Function_Filename(x)的功能

5结构体类型

结构数组的创建
    Matlab提供了两种定义结构的方式:直接引用和使用struct函数。

1. 使用直接引用方式定义结构

命名方式  "结构体名.字段名"

与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。比如建立一个复数变量x:
x.real = 0; % 创建字段(field)名为real,并为该字段赋值为0
x.imag = 0  % 为x创建一个新的字段imag,并为该字段赋值为0
x =
real: 0
imag: 0
然后可以将其动态扩充为数组:
x(2).real = 0; % 将x扩充为1×2的结构数组
x(2).imag = 0;
在任何需要的时候,也可以为数组动态扩充字段,如增加字段scale:
x(1).scale = 0;
这样,所有x都增加了一个scale字段,而x(1)之外的其他变量的scale字段为空:
x(1) % 查看结构数组的第一个元素的各个字段的内容
ans =
real: 0
imag: 0
scale: 0
x(2) % 查看结构数组的第二个元素的各个字段的内容,注意没有赋值的字段为空
ans =
real: 0
imag: 0
scale: []
    应该注意的是,x的real、imag、scale字段不一定是单个数据元素,它们可以是任意数据类型,可以是向量、数组、矩阵甚至是其他结构变量或单元数组,而且不同字段之间其数据类型不需要相同。例如:
clear x; x.real = [1 2 3 4 5]; x.imag = ones(10,10);

数组中不同元素的同一字段的数据类型也不要求一样:
x(2).real = 'abc';
x(2).imag = rand(5,1);
    甚至还可以通过引用数组字段来定义结构数据类型的某字段:
x(3).real = x(1); x(3).imag = 3; x(3)
ans =
real: [1x1 struct]
imag: 3

下面看一个实际的例子来熟悉直接引用方式定义与显示结构。

【例】 温室数据(包括温室名、容量、温度、湿度等)的创建与显示。
(1) 直接对字段赋值法产生结构变量
green_house.name = '一号温室';  % 创建温室名字段
green_house.volume = '2000立方米'; % 创建温室容量字段
green_house.parameter.temperature = [31.2 30.4 31.6 28.7 29.7 31.1 30.9 29.6]; % 创建温室温度字段
green_house.parameter.humidity = [62.1 59.5 57.7 61.5 62.0 61.9 59.2 57.5]; % 创建温室湿度字段
(2)显示结构变量的内容
green_house % 显示结构变量结构
green_house =
name: '一号温室'
volume: '2000立方米'
parameter: [1x1 struct]
green_house.parameter % 用字段作用符号. 显示指定字段(parameter)中内容
ans =
temperature: [2x4 double]
humidity: [2x4 double]
green_house.parameter.temperature % 显示temperature字段中的内容
ans =
31.2000 30.4000 31.6000 28.7000
29.7000 31.1000 30.9000 29.6000

【例】在上例的基础上,创建结构数组用以保存一个温室群的数据。
green_house(2,3).name = '六号温室'; %产生2×3结构数组
green_house % 显示结构数组的结构
green_house =
2x3 struct array with fields:
name
volume
parameter
green_house(2,3) % 显示结构数组元素的结构
ans =
name: '六号温室'
volume: []
parameter: []

2. 使用struct函数创建结构

使用struct函数也可以创建结构,该函数产生或把其他形式的数据转换为结构数组。

struct的使用格式为:

s = sturct('field1',values1,'field2',values2,…);

该函数将生成一个具有指定字段名和相应数据的结构数组,其包含的数据values1、valuese2等必须为具有相同维数的数据。对于struct的赋值用到了单元数组。数组values1、values2等可以是单元数组、数值数组或者单个数值。每个values的数据被赋值给相应的field字段。
     当value为单元数组的时候,生成的结构数组的维数与单元数组的维数相同。而在数据中不包含单元数组的时候,得到的结构数组的维数是1×1的。例如:
s = struct('type',{'big','little'},'color',{'blue','red'},'x',{3,4})
s =
1x2 struct array with fields:
type
color
x
      得到维数为1×2的结构数组s,包含了type、color和x共3个字段。这是因为在struct函数中{'big','little'}、{'blue','red'}和{3,4}都是1×2的单元数组,可以看到两个数据成分分别为:
s(1,1)
ans =
type: 'big'
color: 'blue'
x: 3
s(1,2)
ans =
type: 'little'
color: 'red'
x: 4

下面给出利用struct构建结构数组的具体实例。
【例】利用函数struct,建立温室群的数据库。
(1) struct预建立空结构数组方法之一
a = cell(2,3); % 创建2×3的单元数组

green_house_1=struct('name',a,'volume',a,'parameter',a(1,2))
green_house_1 =
2x3 struct array with fields:
name
volume
parameter
(2)struct预建空结构数组方法之二
green_house_2=struct('name',a,'volume',[],'parameter',[])  
green_house_2 =
2x3 struct array with fields:
name
volume
parameter
(3)struct预建空结构数组方法之三
green_hopuse_3(2,3)=struct('name',[],'volume',[],'parameter',[])
green_hopuse_3 =
2x3 struct array with fields:
name
volume
parameter
(4)struct创建结构数组方法之四
a1={'六号房'};a2={'3200立方米'};
green_house_4(2,3)=struct('name',a1,'volume',a2,'parameter',[]);
T6=[31.2,30.4,31.6,28.7;29.7,31.1,30.9,29.6];         green_house_4(2,3).parameter.temperature=T6;        
green_house_4
ans =
2x3 struct array with fields:
name
volume
parameter

2. 结构数组的操作

MATLAB中专门用于对结构数组的操作的函数并不多,通过 help datatypes获取数据类型列表,可以看到其中的结构数据类型的有关的函数,主要有

函数名                功能描

deal                将其参数值(如单元数组)的内容分别输出到一个个独立的变量

fieldnames          获取结构的字段名
getfield             获取结构中指定字段的值

rmfield             删除结构的字段(不是字段内容)
setfield             设置结构数组中指定的字段的值

struct               创建结构数组
struct2cell           结构数组转化成单元数组

isfield              判断是否存在该字段
isstruct              判断某变量是否是结构类型

下面举一些具体的例子说明如果对结构数组加以操作。

【例】对结构数组进行字段的增添和删减操作。
(1)创建结构数组
clear,for k=1:10;department(k).number=['No.',int2str(k)];end
department
department =
1x10 struct array with fields:
number
(2)增添字段:在数组中任何一个结构上进行的字段增添操作,其影响遍及整个结构数组
department(1).teacher=40;department(1).student=300;
department(1).PC_computer=40;
department
department =
1x10 struct array with fields:
number
teacher
student
PC_computer
(3)增添子字段的操作只影响被操作的那个具体结构,而不是影响整个结构数组
department(2).teacher.male=35;department(2).teacher.female=13;
D2T=department(2).teacher   % 第2结构teacher字段包含两个子字段
D1T=department(1).teacher   % 第1结构teacher字段仅是一个数
D2T =
male: 35
female: 13
D1T =
40
(4)删除子字段的操作也只影响被操作的那个具体结构
department(2).teacher=rmfield(department(2).teacher,'male');
department(2).teacher
ans =
female: 13
(5)删除字段的操作是对整个结构数组实施的
department=rmfield(department,'student') % 删除一个字段
department =
1x10 struct array with fields:
number
teacher
PC_computer
department=rmfield(department,{'teacher';'PC_computer'})% 删除2个字段
department =
1x10 struct array with fields:
number

【例】数值运算操作和函数在结构字段上的作用。
n_ex = 5; % 结构数组的长度
for k = 1:n_ex, % 创建1×5结构数组
ex(k).f = (k-1)*n_ex + [1:5];
end;
ex                 % 显示结构数组的结构
ex =
1x5 struct array with fields:
f
%显示结构数组的字段中内容
disp([blanks(10) '结构字段中内容'])
for k=1:n_ex,disp(ex(k).f),end
结构字段中内容
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
class(ex(1).f)             % 检查字段中内容的类型
ans =
double
% 对各结构字段中数值数组相应位置的数据相加求和
sum_f=zeros(1,5)
for k=1:n_ex,sum_f=sum_f+ex(k).f;end,sum_f
sum_f =
55 60 65 70 75
% 对结构数组字段中各元素分别求平方根
disp([blanks(20) 'ex.f的平方根值'])
for k=1:n_ex,
disp(sqrt(ex(k).f)),
end
ex.f的平方根值
1.0000 1.4142 1.7321 2.0000 2.2361
2.4495 2.6458 2.8284 3.0000 3.1623
3.3166 3.4641 3.6056 3.7417 3.8730
4.0000 4.1231 4.2426 4.3589 4.4721
4.5826 4.6904 4.7958 4.8990 5.0000

【例】 指令struct2cell和cell2struct的使用。
(1)创建“带2个字段的 结构数组”
for k=1:5,
ex(k).s=['No.' int2str(k)];
ex(k).f=(k-1)*5+[1:5];
end
(2)显示结构数组的内容
fprintf('%s\n','ex.s字段的内容 ');fprintf('%s\',blanks(4))
for k=1:5;fprintf('%s\\',[ex(k).s blanks(1)]);end
fprintf('%s\n',blanks(1)),fprintf('%s\n','ex.f字段的内容 ')
for k=1:5;disp(ex(k).f);end   %显示ex.f字段内容
ex.s字段的内容
No.1 \No.2 \No.3 \No.4 \No.5 \

ex.f字段的内容
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
(3)把ex结构数组转换为单元数组
C_ex=struct2cell(ex); % 带2个字段的(1×5)结构数组转换为(2×1×5)单元数组
size(C_ex)
fprintf('%s\',[C_ex{1,1,1},blanks(3)])   % 显示C_ex第1页第1行第1列内容
fprintf('%5g\',C_ex{2,1,1})     % 显示C_ex第2页第1行第1列内容
ans =
2 1 5
No.1 1 2 3 4 5
(4)把单元数组转换为结构数组之一
FS={'S_char';'F_num'};     % 用单元数组预建字段名字符串
EX1=cell2struct(C_ex,FS,1)   % 单元数组向结构数组转换
EX1 =
1x5 struct array with fields:
S_char
F_numric
EX1(1)             % 观察新结构EX1第一结构的情况
ans =
S_char: 'No.1'
F_numric: [1 2 3 4 5]
(5)把单元数组转换为结构数组之二
EX2=cell2struct(C_ex,'xx',2)
EX2 =
2x5 struct array with fields:
xx
(6)把单元数组转换为结构数组之三
YY=strvcat('y1','y2','y3','y4','y5');EX3=cell2struct(C_ex,YY,3)
EX3 =
2x1 struct array with fields:
y1
y2
y3
y4
y5
EX3(1)             % 观察第一结构情况
ans =
y1: 'No.1'
y2: 'No.2'
y3: 'No.3'
y4: 'No.4'
y5: 'No.5'
EX3(2)             % 观察第二结构情况
ans =
y1: [1 2 3 4 5]
y2: [6 7 8 9 10]
y3: [11 12 13 14 15]
y4: [16 17 18 19 20]
y5: [21 22 23 24 25]

6数组类型
:    i:k              i:j:k

linspace(a,b,100)

单元数组

单元数组中的每一个元素称为单元(cell). 单元可以包含任何类型的matlab数据, 这些数据类型包括数值数组, 字符, 符号对象, 甚至其他的单元数组和结构体. 不同的单元可以包含不同的数据.

1.1单元数组创建与显示:

1、直接赋值法:按单元索引法 和按内容索引法。(其实也就是将花括号放在等式的右边或是左边的区别)。注意:“按单元索引法”和“按内容索引法”是完全等效的,可以互换使用。通过下面实例,我们看到:花括号{}用于访问单元的值,而括号()用于标识单元(即:不用于访问单元的值)。具体理解{}和()区别可以在下面代码最后分别输入A{2,2}和A(2,2)。就会发现“按内容索引法{}”能显示完整的单元内容,而“按单元索引法()”有时无法显示完整的单元内容。

>> A(1,1)={[1 2 3; 4 5 6;7 8 9]};          % 按单元索引法

>> A(1,2)={2+3i};

>> A(2,1)={'A character'};

>> A(2,2)={12:-2:0};

>> A                                     %要想详细显示A中的内容,可用指令:celldisp(A)

A =

[3x3 double]    [2.0000 + 3.0000i]
    'A character'          [1x7 double]

>> B{1,1}=[1 2 3;4 5 6;7 8 9];           % 按内容索引法。

>> B{1,2}=2+3i;

>> B{2,1}='A character';
>> B{2,2}=12:-2:0;

>>B

B =

[3x3 double]    [2.0000 + 3.0000i]
    'A character'          [1x7 double]

2、利用cell函数法:即首先用cell函数生成一个空的单元数组,然后再向其中添加所需的数据。下面的代码生成一个2X3的空单元数组:

>> C=cell(2,3)

C =

[]     []     []
     []     []     []

利用cell生成空单元数组后,可以采用“按单元索引法”和“按内容索引法”对其进行赋值。在赋值时,用户一定要注意{}和()的用法。

>> C(1,1)={'This does work'}

C =

'This does work'     []     []
                  []                []     []

>> C{2,3}='This work'

C =

'This does work'      []             []
                  []                []    'This work'

(1)利用cell指令创建单元数组

C=cell(2);            %预设matlab  空单元数组

C(:,1)={char('Another','textstring');10:-1:1} %对第一列单元赋值

C=

[2x11char  ]       []

[1x10double]     []

(2)单元数组的“列”扩充和“行”扩充

AC=[A C]                            %空格(或逗号)利用来分隔列

A_C=[A;C]                           %分号利用来分隔“行”

AC =

[2x10 char]          [3x3 double]         [2x11 char ]        []

[1.0000+ 2.0000i]       [1x1 sym  ]        [1x10 double]     []

A_C =

[2x10 char  ]            [3x3 double]

[1.0000+ 2.0000i]        [1x1 sym  ]

[2x11 char  ]                      []

[1x10 double]                   [] 
【例】cellplot能用图形形象化地表示单元数组的内容。(A_C取自上例)

cellplot(A_C,'legend')

单元数组的收缩

A_C(3,:)=[]                    %删除第3行,使A_C成为matlab 的单元数组

A_C =

[2x10 char  ]           [3x3 double]

[1.0000+ 2.0000i]         [1x1 sym   ]

[1x10 double]                 []

把A_C重组成matlab单元数组R_A_C

R_A_C=reshape(A_C,2,3)
R_A_C =

[2x10 char]            [1x10 double]    [1x1 sym]

[1.0000+ 2.0000i]    [3x3  double]           []

1.2 单元数组内容的调取

取一个单元

f1=R_A_C(1,3)                       %使用圆括号寻访得到的是单元,而不仅是内容。

class(f1)

f1 =

[1x1 sym]

ans =

cell

取一个单元的内容

f2=R_A_C{1,3}                        %用花括号寻访取得内容

class(f2)

f2=

sin(-3*t)*exp(-t)

ans =

sym

取单元内的子数组

f3=R_A_C{1,1}(:,[1 25 6])          %注意三种括号的不同用途

%取第1行第1列单元内容中的第1、2、5、6列。

f3=

这是

单元创建

同时调取多个单元内容

[f4,f5,f6]=deal(R_A_C{[1,3,4]})          %取三个单元内容,赋值给三个变量

f4=

这是

单元数组创建算例 1

f5 =

10     9     8     7     6     5     4     3     2     1

f6 =

1     4     7

2     5     8

3     6     9

struct和cell看起来相似,其实可以这样理解struct只能够构造1*n个元素,而cell就是个变态版的数组

7Map函数

Matlab中的映射容器就是Map类,这里的Map类与Java的Map类类似,也是一个key对应着一个value,Map类的所有对象都有三个属性:

Count:表示Map中存储的键值对的数量

KeyType:表示Map对象中包括的key的类型

ValueType:表示Map中的数据类型

1、创建Map对象

>> mapObj=containers.Map({1,2},{'xing','xiao'})

mapObj =

Map with properties:

Count: 2
KeyType: double
ValueType: char
2、查看和读取Map对象

可以通过使用keys函数查看Map对象中包含的所有键;通过values函数查看所有的值。

%获取所有的键
>> keys(mapObj)
ans =
[1] [2]
%获取所有的值
>> values(mapObj)
ans =
'xing' 'xiao'
%获取指定键的值
>> mapObj(1)
ans =
xing
%获取多个值
>> values(mapObj,{1,2})
ans =
'xing' 'xiao'
3、编辑Map对象

(1)添加键值对

>> mapObj(3)='ming'

mapObj =

Map with properties:

Count: 3
KeyType: double
ValueType: char

>> values(mapObj)

ans =

'xing' 'xiao' 'ming'
(2)删除键值对

>> remove(mapObj,2)

ans =

Map with properties:

Count: 2
KeyType: double
ValueType: char

>> values(mapObj)

ans =

'xing' 'ming'
(3)修改键值对

如果需要在值不变的情况下对键名进行修改,首先要删除键名和对应的值,然后再添加一个有正确键名的新条目。通过覆盖原有的值,可以在键名不变的情况下对值进行修改。

>> remove(mapObj,1)

ans =

Map with properties:

Count: 1
KeyType: double
ValueType: char

>> mapObj(11)='xing'

mapObj =

Map with properties:

Count: 2
KeyType: double
ValueType: char

>> mapObj(3)='aaa'

mapObj =

Map with properties:

Count: 2
KeyType: double
ValueType: char

>> keys(mapObj)

ans =

[3] [11]

>> values(mapObj)

ans =

'aaa' 'xing'

8数据类型之间的转换
类型识别函数:

函数 功能 函数 功能
iscell 判断是否为单元数组 isnumeric 判断是否为数值数组
isreal 判断是否为实数 ischar 判断是否为字符数组
isstr 判断是否为字符串 isfloat 判断是否为浮点数
isstruct 判断是否为结构数组 whos 列举变量类型及相关数据
类型转换函数:

函数 功能 函数 功能
dec2bin 十进制转为二进制 int2str 整数转为字符串
num2str 数值转为字符串 str2double 字符串转为double
还有其他很多的转换函数,基本上都是类似的语法。

MATLAB数据类型的更多相关文章

  1. Matlab数据类型的转换

    Matlab中有15种基本数据类型,主要是整型.浮点.逻辑.字符.日期和时间.结构数组.单元格数组以及函数句柄等. 1.整型:(int8:uint8:int16:uint16:int32:uint32 ...

  2. MATLAB中的结构数组

    MATLAB中的结构数组 结构数组: 结构是包含一组记录的数据类型,而记录则是存储在相应的字段中.结构的字段可以是任意一种MATLAB数据类型的变量或者对象.结构类型的变量也可以是一维的.二维的或多维 ...

  3. matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明

    转自:http://blog.csdn.net/fx677588/article/details/53301740 1. matlab图像保存说明 matlab中读取图片后保存的数据是uint8类型( ...

  4. 数字图像处理的Matlab实现(2)—MATLAB基础

    第2章 MATLAB编程基础 2.1 M-文件 MATLAB中的M-文件可以是简单执行一系列MATLAB语句的源文件,也可以是接收自变量并产生一个或多个输出的函数. M-文件由文本编辑器创建,并以fi ...

  5. Matlab中函数句柄@的作用及介绍

    问:f=@(x)acos(x)表示什么意思?其中@代表什么?答:表示f为函数句柄,@是定义句柄的运算符.f=@(x)acos(x) 相当于建立了一个函数文件:% f.mfunction  y=f(x) ...

  6. Matlab 基础

    命令行(Command Line) 1. help  格式:help  命令 2. cd 配合 Tab 使用 pwd: print current working directory,打印当前工作路径 ...

  7. matlab中图片数据类型转换uint8与double

    matlab中处理图像像素点数据: img1=double(imread('lenna.bmp')); matlab中imshow图片,要先转换成uint8: subplot(1,2,1),imsho ...

  8. Matlab中的函数句柄@

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50699990 @是Matlab中的句柄 ...

  9. matlab学习笔记13_3创建函数句柄

    一起来学matlab-matlab学习笔记13函数 13_3 创建函数句柄 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://ww2.mathworks.cn/help ...

随机推荐

  1. DOS下读取spd信息的汇编程序(通过SMBus)

    汇编程序编写的读取spd信息的代码: ;----------------------------------------------------------- ;功能: 通过SMbus 读取内存的SP ...

  2. selenium得到弹出窗口

    # 获取当前的页面窗口 first_handle = brower.current_window_handle handles = brower.window_handles for i in han ...

  3. Vim常用命令:移动 跳转 到 文档开头或末尾

    gg:命令将光标移动到文档开头 G:命令将光标移动到文档末尾 vi编辑器中在命令行模式下输入G可以直接跳转到页面的底部 在命令行模式下输入1G可以跳转到页面的头部位置 更多在vi中移动编辑位置的命令说 ...

  4. PHP 支付类库, cURL开源HTTP类库

    未做任何测试 支付类库地址:http://doc.yurunsoft.com/PaySDK cURL开源HTTP类库地址:http://doc.yurunsoft.com/YurunHttp/1

  5. tomcat日志警告WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.

    日志中有警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did ...

  6. GitHub git 命令思维导图

    GitHub git 命令思维导图 拖动图片至浏览器地址栏松手,点击回车看高清大图.

  7. Github网站加载不完全,响应超时,解决办法

    Github网站加载缓慢信息不全解决方法 Github是一个代码托管平台和开发者社区,开发者可以在Github上创建自己的开源项目并与其他开发者协作编码.毫不夸张地说,高效利用Github是一个优秀的 ...

  8. Eclipse中在xml文件中,ctrl+左键的快捷键,点击class定位,不生效

    修改方式:   第一种方式:Window -> Preferences -> General -> Editors -> File Associations           ...

  9. topcoder srm 465 div1

    problem1 link 以两个点$p,q$为中心的两个正方形的边长和最大为$2dist(p,q)$,即$p,q$距离的两倍. 也就是两个$p,q$的连线垂直穿过两个正方形的一对边且平分两个正方形. ...

  10. Python 读写文件 中文乱码 错误TypeError: write() argument must be str, not bytes+

    今天写上传文件代码,如下 def uploadHandle(request): pic1=request.FILES['pic1'] picName=os.path.join(settings.MED ...