当前位置:首页 » 格式模板 » matlab数据格式

matlab数据格式

发布时间: 2021-03-15 17:31:25

A. MATLAB编程的数据类型是怎样的

考虑到存贮和计算的消耗,程序中将数据表示成不同的类型,如整型用于表示整数、字符型用于表示字符、双精度浮点型用于表示小数等。

MATLAB为了方便,编写程序时可以不事先声明变量的数据类型(当然,这是一个不好的习惯,但对于小程序,过分关注数据类型实在没有必要),而且本身的数据类型也比较少:用于表示数值的数据类型有“整型(int)”和“双精度型(double)”中的数据类型。对于数值型变量,如果不事先声明,MATLAB默认数据类型为double型。整型数据类型按其所占字节数分多种,最值得注意的是uint8,这是用来表示图像像素灰度值的一种数据类型。

B. matlab程序中怎么定义数据的类型

语句
double s
的含义是将获取字符s的asic码
所以你的程序执行后,应该会“莫名其妙”的出现一行
ans =
115

这个就是s的asic码

你的程序应该
1。删除double s
2。s=s+a1(i,j);改为s=s+double(a1(i,j));

C. matlab 数据类型

Matlab中有15种基本数据类型,主要是整型、浮点、逻辑、字符、日期和时间、结构数组、单元格数组以及函数句柄等。Matlab主要数据类型的结构图如下所失:

1.整型
整型:通过intmax(class)和intmin(class) 函数返回该类整型的最大值和最小值,例如intmax(‘int8’)=127
2.浮点

浮点数:REALMAX('double')和REALMAX('single')分别返回双精度浮点和单精度浮点的最大值,REALMIN('double')和REALMIN ('single')分别返回双精度浮点和单精度浮点的最小值。

3.逻辑

Logical:下例是逻辑索引在矩阵操作中的应用,将5*5矩阵中大于0.5的元素设定为0:

A = rand(5);
A(A>0.5)=0

4.字符

Matlab中的输入字符需使用单引号。字符串存储为字符数组,每个元素占用一个ASCII字符。如日期字符:DateString=’9/16/2001’ 实际上是一个1行9列向量。构成矩阵或向量的行字符串长度必须相同。可以使用char函数构建字符数组,使用strcat函数连接字符。

例如,命令 name = ['abc' ; 'abcd'] 将触发错误警告,因为两个字符串的长度不等,此时可以通过空字符凑齐如:name = ['abc ' ; 'abcd'],更简单的办法是使用char函数:char(‘abc’,’abcd’),Matlab自动填充空字符以使长度相等,因此字符串矩阵的列纬总是等于最长字符串的字符数,例如size(char(‘abc’,’abcd’))返回结果[2,4],即字符串’abc’实际存在的是’abc ’,此时如需提取矩阵中的某一字符元素,需要使用deblank函数移除空格如name =char(‘abc’,’abcd’); deblank(name(1,:))。此外,Matlab同时提供一种更灵活的单元格数组方法,使用函数cellstr可以将字符串数组转换为单元格数组:

data= char(‘abc’,’abcd’)
length(data(1,:)) ->? 4
cdata=cellstr(data)
length(cdata{1}) ->?3

常用的字符操作函数

blanks(n) 返回n个空字符
deblank(s) 移除字符串尾部包含的空字符
eval(string) 将字符串作为命令执行
findstr(s1,s2) 搜索字符串
ischar(s) 判断是否字符串
isletter(s) 判断是否字母
lower(s) 转换小写
upper(s) 转换大写
strcmp(s1,s2) 比较字符串是否相同
strncmp(s1,s2,n) 比较字符串中的前n个字符是否相同
strrep(s1,s2,s3) 将s1中的字符s2替换为s3

5.日期和时间

Matlab提供三种日期格式:日期字符串如’1996-10-02’,日期序列数如729300(0000年1月1日为1)以及日期向量如 1996 10 2 0 0 0,依次为年月日时分秒。

常用的日期操作函数

datestr(d,f) 将日期数字转换为字符串
datenum(str,f) 将字符串转换为日期数字
datevec(str) 日期字符串转换向量
weekday(d) 计算星期数
eomday(yr,mth) 计算指定月份最后一天
calendar(str) 返回日历矩阵
clock 当前日期和时间的日期向量
date 当前日期字符串
now 当前日期和时间的序列数

6.结构

结构是包含已命名“数据容器”或字段的数组。结构中的字段可以包含任何数据,例如:

构建结构数组:赋值方法

下面的赋值命令产生一个名为patient的结构数组,该数组包含三个字段:

patient.name = 'John Doe';
patient.billing = 127.00;
patient.test = [79 75 73; 180 178 177.5; 220 210 205];

在命令区内输入patient可以查看结构信息:

name: 'John Doe'
billing: 127
test: [3x3 double]

继续赋值可扩展该结构数组:

patient(2).name = 'Ann Lane';
patient(2).billing = 28.50;
patient(2).test = [68 70 68; 118 118 119; 172 170 169];

赋值后结构数组变为[1 2]。

构建结构数组:struct函数

函数基本形式为:strArray = struct('field1',val1,'field2',val2, ...)

例如:

weather(1) = struct('temp', 72,'rainfall', 0.0); weather(2) = struct('temp', 71,'rainfall', 0.1);
weather = repmat(struct('temp', 72, 'rainfall', 0.0), 1, 3);
weather = struct('temp', {68, 80, 72}, 'rainfall', {0.2, 0.4, 0.0});

访问结构数据

以下都是合法的结构数组访问命令:

mypatients = patient(1:2) 获取子结构数据
mypatients(1) 访问结构数据
patient(2).name 访问结构数据中的特定字段
patient(3).test(2,2) 访问结构数据中的特定字段(该字段为数组)
bills = [patient.billing] 访问多个结构
tests = {patient(1:2).test} 提取结构数据转换成单元格数组

使用结构字段的动态名称

通过structName.(expression)可以赋予结构字段名称并访问数据。例如字段名为expression、结构名为structName,访问其中第7行1至25列数据可以使用命令:structName.(expression)(7,1:25)。

例如,存在一个学生每周成绩数据结构数组,其数据通过以下方式建立:

testscores.wang.week(1:25) = ...
[95 89 76 82 79 92 94 92 89 81 75 93 ...
85 84 83 86 85 90 82 82 84 79 96 88 98];

testscores.chen.week(1:25) = ...
[87 80 91 84 99 87 93 87 97 87 82 89 ...
86 82 90 98 75 79 92 84 90 93 84 78 81];

即结构名为testscores,字段使用每个学生的名称命名,分别为wang和chen,每个学生下面包含名为week的成绩结构数组。

现计算给定结构名称、学生名称和起止周数的平均分数。

在命令窗口中输入 edit avgscore.m,输入以下代码后保存文件:

function avg = avgscore(struct,student, first, last)
avg = sum(struct.(student).week(first:last))/(last - first + 1);

在命名窗口中输入:avgscore(testscores, 'chen', 7, 22) 计算学生陈从第7周到第22周的平均分数。

添加和删除结构字段

命令[struct](index).(field)可添加或修改字段。如patient(2).ssn = '000-00-0000' 在结构patient中添加一个名为ssn的字段。

删除字段使用rmfield函数,如patient2 = rmfield(patient, 'name') 删除name字段并产生新的结构。

单元格数组

单元格数组提供了不同类型数据的存储机制,可以储存任意类型和任意纬度的数组。

访问单元格数组的规则和其他数组相同,区别在于需要使用花括号{}访问,例如A{2,5}访问单元格数组A中的第2行第5列单元格。

构建单元格数组:赋值方法

使用花括号标识可直接创建单元格数组,如:

A(1,1) = {[1 4 3; 0 5 8; 7 2 9]};
A(1,2) = {'abcd'};
A(2,1) = {3+7i};
A(2,2) = {-pi:pi/10:pi};

上述命令创建2*2的单元格数组A。继续添加单元格元素直接使用赋值如A(2,3)={5}即可,注意需使用花括号标识。简化的方法是结合使用花括号(单元格数组)和方括号()创建,如C = {[1 2], [3 4]; [5 6], [7 8]};

构建单元格数组:函数方法

Cell函数。如:
B = cell(2, 3);
B(1,3) = {1:3};

访问数据

通过索引可直接访问单元格数组中的数据元素,例如:

N{1,1} = [1 2; 4 5];
N{1,2} = 'Name';
N{2,1} = 2-4i;
N{2,2} = 7;

c = N{1,2}
d = N{1,1}(2,2)

函数句柄

函数句柄是用于间接调用一个函数的Matlab值或数据类型。在调用其它函数时可以传递函数句柄,也可在数据结构中保存函数句柄备用。通过命令形式 fhandle = @functionname 可以创建函数句柄,例如 trigFun=@sin,或匿名函数sqr = @(x) x.^2;。

使用句柄调用函数的形式是 fhandle(arg1, arg2, ..., argn) 或 fhandle()(无参数)。如:
trigFun(1)。例:

function x = plotFHandle(fhandle, data)
plot(data, fhandle(data))

plotFHandle(@sin, -pi:0.01:pi)

D. matlab有几种文件类型

m文件.m
model文件.mdl
figure文件.fig
data文件.mat
stateflow文件.cdr
report generator文件.rpt

E. matlab程序如何输入特定格式数据

可以将存有数据的文件载入到MATLAB中,例如,所有的数据存在.xls或者.txt文件中,那么可以将他们直接载入到MATLAB中
Data=xlsread('data.xls');
Data=load('data.txt');
这样,所有数据将以矩阵Data存在MATLAB中了,程序直接调用矩阵Data就可以了

出现这个错误是因为你的data.txt不在你MATLAB的当前工作目录下,你可以将data.txt拖到MATLAB的工作目录下,或者在当前工作目录下新建一个。
总之是让MATLAB能找得到data.txt

F. matlab数据输出格式

这个是回车键的解释引起的。
在记事本中输入回车,实际上你输入了两个字符,一个回车,一个换行。
而如果在Linux下,你输入回车,实际上只输入了一个ASCII码为10的回车,而没有换行。
当然你如果用word或别的软件打开的话,这些软件可以认一个回车的东西。
要解决这个问题。
你如果在matlab中使用的是sprintf的话,
你将\n改成\r\n就可以了。

G. MATLAB中变量的基本数据类型是什么

Matlab中有15种基本数据类型,主要是整型、浮点、逻辑、字符、日期和时间、结构数组、单元格数组以及函数句柄等。Matlab主要数据类型的结构图如下所失:

1.整型

整型:通过intmax(class)和intmin(class)函数返回该类整型的最大值和最小值,例如intmax(‘int8’)=127

2.浮点

浮点数:REALMAX('double')和REALMAX('single')分别返回双精度浮点和单精度浮点的最大值,REALMIN('double')和REALMIN('single')分别返回双精度浮点和单精度浮点的最小值。

3.逻辑

Logical:下例是逻辑索引在矩阵操作中的应用,将5*5矩阵中大于0.5的元素设定为0:

A=rand(5);

A(A>0.5)=0

4.字符

Matlab中的输入字符需使用单引号。字符串存储为字符数组,每个元素占用一个ASCII字符。如日期字符:DateString=’9/16/2001’实际上是一个1行9列向量。构成矩阵或向量的行字符串长度必须相同。可以使用char函数构建字符数组,使用strcat函数连接字符。

例如,命令name=['abc';'abcd']将触发错误警告,因为两个字符串的长度不等,此时可以通过空字符凑齐如:name=['abc';'abcd'],更简单的办法是使用char函数:char(‘abc’,’abcd’),Matlab自动填充空字符以使长度相等,因此字符串矩阵的列纬总是等于最长字符串的字符数,例如size(char(‘abc’,’abcd’))返回结果[2,4],即字符串’abc’实际存在的是’abc’,此时如需提取矩阵中的某一字符元素,需要使用deblank函数移除空格如name=char(‘abc’,’abcd’);deblank(name(1,:))。此外,Matlab同时提供一种更灵活的单元格数组方法,使用函数cellstr可以将字符串数组转换为单元格数组:

data=char(‘abc’,’abcd’)

length(data(1,:))->?4

cdata=cellstr(data)

length(cdata{1})->?3

常用的字符操作函数

blanks(n)返回n个空字符

deblank(s)移除字符串尾部包含的空字符

eval(string)将字符串作为命令执行

findstr(s1,s2)搜索字符串

ischar(s)判断是否字符串

isletter(s)判断是否字母

lower(s)转换小写

upper(s)转换大写

strcmp(s1,s2)比较字符串是否相同

strncmp(s1,s2,n)比较字符串中的前n个字符是否相同

strrep(s1,s2,s3)将s1中的字符s2替换为s3

5.日期和时间

Matlab提供三种日期格式:日期字符串如’1996-10-02’,日期序列数如729300(0000年1月1日为1)以及日期向量如1996102000,依次为年月日时分秒。

常用的日期操作函数

datestr(d,f)将日期数字转换为字符串

datenum(str,f)将字符串转换为日期数字

datevec(str)日期字符串转换向量

weekday(d)计算星期数

eomday(yr,mth)计算指定月份最后一天

calendar(str)返回日历矩阵

clock当前日期和时间的日期向量

date当前日期字符串

now当前日期和时间的序列数

6.结构

结构是包含已命名“数据容器”或字段的数组。结构中的字段可以包含任何数据,例如:

构建结构数组:赋值方法

下面的赋值命令产生一个名为patient的结构数组,该数组包含三个字段:

patient.name='JohnDoe';

patient.billing=127.00;

patient.test=[797573;180178177.5;220210205];

在命令区内输入patient可以查看结构信息:

name:'JohnDoe'

billing:127

test:[3x3double]

继续赋值可扩展该结构数组:

patient(2).name='AnnLane';

patient(2).billing=28.50;

patient(2).test=[687068;118118119;172170169];

赋值后结构数组变为[12]。

构建结构数组:struct函数

函数基本形式为:strArray=struct('field1',val1,'field2',val2,...)

例如:

weather(1)=struct('temp',72,'rainfall',0.0);weather(2)=struct('temp',71,'rainfall',0.1);

weather=repmat(struct('temp',72,'rainfall',0.0),1,3);

weather=struct('temp',{68,80,72},'rainfall',{0.2,0.4,0.0});

访问结构数据

以下都是合法的结构数组访问命令:

mypatients=patient(1:2)获取子结构数据

mypatients(1)访问结构数据

patient(2).name访问结构数据中的特定字段

patient(3).test(2,2)访问结构数据中的特定字段(该字段为数组)

bills=[patient.billing]访问多个结构

tests={patient(1:2).test}提取结构数据转换成单元格数组

使用结构字段的动态名称

通过structName.(expression)可以赋予结构字段名称并访问数据。例如字段名为expression、结构名为structName,访问其中第7行1至25列数据可以使用命令:structName.(expression)(7,1:25)。

例如,存在一个学生每周成绩数据结构数组,其数据通过以下方式建立:

testscores.wang.week(1:25)=...

[958976827992949289817593...

85848386859082828479968898];

testscores.chen.week(1:25)=...

[878091849987938797878289...

86829098757992849093847881];

即结构名为testscores,字段使用每个学生的名称命名,分别为wang和chen,每个学生下面包含名为week的成绩结构数组。

现计算给定结构名称、学生名称和起止周数的平均分数。

在命令窗口中输入editavgscore.m,输入以下代码后保存文件:

functionavg=avgscore(struct,student,first,last)

avg=sum(struct.(student).week(first:last))/(last-first+1);

在命名窗口中输入:avgscore(testscores,'chen',7,22)计算学生陈从第7周到第22周的平均分数。

添加和删除结构字段

命令[struct](index).(field)可添加或修改字段。如patient(2).ssn='000-00-0000'在结构patient中添加一个名为ssn的字段。

删除字段使用rmfield函数,如patient2=rmfield(patient,'name')删除name字段并产生新的结构。

单元格数组

单元格数组提供了不同类型数据的存储机制,可以储存任意类型和任意纬度的数组。

访问单元格数组的规则和其他数组相同,区别在于需要使用花括号{}访问,例如A{2,5}访问单元格数组A中的第2行第5列单元格。

构建单元格数组:赋值方法

使用花括号标识可直接创建单元格数组,如:

A(1,1)={[143;058;729]};

A(1,2)={'abcd'};

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

A(2,2)={-pi:pi/10:pi};

上述命令创建2*2的单元格数组A。继续添加单元格元素直接使用赋值如A(2,3)={5}即可,注意需使用花括号标识。简化的方法是结合使用花括号(单元格数组)和方括号()创建,如C={[12],[34];[56],[78]};

构建单元格数组:函数方法

Cell函数。如:

B=cell(2,3);

B(1,3)={1:3};

访问数据

通过索引可直接访问单元格数组中的数据元素,例如:

N{1,1}=[12;45];

N{1,2}='Name';

N{2,1}=2-4i;

N{2,2}=7;

c=N{1,2}

d=N{1,1}(2,2)

函数句柄

函数句柄是用于间接调用一个函数的Matlab值或数据类型。在调用其它函数时可以传递函数句柄,也可在数据结构中保存函数句柄备用。通过命令形式fhandle=@functionname可以创建函数句柄,例如trigFun=@sin,或匿名函数sqr=@(x)x.^2;。

使用句柄调用函数的形式是fhandle(arg1,arg2,...,argn)或fhandle()(无参数)。如:

trigFun(1)。例:

functionx=plotFHandle(fhandle,data)

plot(data,fhandle(data))

plotFHandle(@sin,-pi:0.01:pi)

H. matlab 数据显示格式

如果以短整式显示(默认),则为如下:
>> x = 1215.678978234756;

>> format;x

可以看到,数据显示时以科学计数法显示为: x = 1.2157e+03
说明:在数据计算与显示输出时,常需要控制数据显示格式,matlab默认的数据显示格式是短整式(short),当数据为实数时,以小数点后4位的长度显示;当数据为整数时则以整数显示。数据显示格式以format指令控制。

如果要以长格式(long)显示,那么可以输入如下指令:
>> format long;x

回车后输出如下: x = 1.215678978234756e+03

如果需要短紧缩格式,也就是我们习惯的书写格式,可采用如下指令:
>> format short g;x

输出数据如下: x = 1215.7

当然,也可以采用有理格式显示(近似分数)
指令:
>> format rational;x

输出: x = 34039/28

需要知道的是,数据显示格式,并不会影响数据的实际数值大小,不会影响计算的精度,在计算过程中matlab是以约16位有效数字的。

I. matlab中数组如何输出数据格式为分数

matlab中format option可以设置结果的显示形式为option指定的样式,输出数据格式为分数则可以使用:

formatrat

示例如下:

>> A = [2,0.2,0.3,0.123466]

A = 2.0000 0.2000 0.3000 0.1235

>> format rat

>> A

A = 2 1/5 3/10 332/2689

热点内容
涂鸦论文 发布:2021-03-31 13:04:48 浏览:698
手机数据库应用 发布:2021-03-31 13:04:28 浏览:353
版面217 发布:2021-03-31 13:04:18 浏览:587
知网不查的资源 发布:2021-03-31 13:03:43 浏览:713
基金赎回参考 发布:2021-03-31 13:02:08 浏览:489
悬疑故事范文 发布:2021-03-31 13:02:07 浏览:87
做简单的自我介绍范文 发布:2021-03-31 13:01:48 浏览:537
战略地图参考 发布:2021-03-31 13:01:09 浏览:463
收支模板 发布:2021-03-31 13:00:43 浏览:17
电气学术会议 发布:2021-03-31 13:00:32 浏览:731