matlab更改类型,matlab数据类型和转换
Matlab中有15种基本数据类型,主要是整型、浮点、逻辑、字符、日期和时间、结构数组、单元格数组以及函数句柄等。
1、整型:(int8;uint8;int16;uint16;int32;uint32;int64;uint64)通过intmax(class)和intmin(class)
函数返回该类整型的最大值和最小值,例如intmax(‘int8’)=127;
2、浮点:(single;double)
浮点数:REALMAX('double')和REALMAX('single')分别返回双精度浮点和单精度浮点的最大值,REALMIN('double')和REALMIN
('single')分别返回双精度浮点和单精度浮点的最小值。
3、逻辑:(logical)
Logical:下例是逻辑索引在矩阵操作中的应用,将5*5矩阵中大于0.5的元素设定为0:
A
= rand(5);
A(A>0.5)=0;
4、字符:(char)
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)
移除字符串尾部包含的空字符
(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、结构
结构是包含已命名“数据容器”或字段的数组。结构中的字段可以包含任何数据。
7、构建结构数组
(1)赋值方法
下面的赋值命令产生一个名为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]。
(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});
(3)访问结构数据
以下都是合法的结构数组访问命令:
mypatients =
patient(1:2) 获取子结构数据
mypatients(1) 访问结构数据
patient(2).name 访问结构数据中的特定字段
patient(3).test(2,2) 访问结构数据中的特定字段(该字段为数组)
bills =
[patient.billing] 访问多个结构
tests =
{patient(1:2).test} 提取结构数据转换成单元格数组
使用结构字段的动态名称
通过structName.(expression_r_r_r)可以赋予结构字段名称并访问数据。例如字段名为expression_r_r_r、结构名为structName,访问其中第7行1至25列数据可以使用命令:structName.(expression_r_r_r)(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周的平均分数。
(4)添加和删除结构字段
命令[struct](index).(field)可添加或修改字段。如patient(2).ssn = '000-00-0000'
在结构patient中添加一个名为ssn的字段。
删除字段使用rmfield函数,如patient2 =
rmfield(patient, 'name') 删除name字段并产生新的结构。
8、单元格数组:(cell)
单元格数组提供了不同类型数据的存储机制,可以储存任意类型和任意纬度的数组。
访问单元格数组的规则和其他数组相同,区别在于需要使用花括号{}访问,例如A{2,5}访问单元格数组A中的第2行第5列单元格。
(1)构建单元格数组:赋值方法
使用花括号标识可直接创建单元格数组,如:
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]};
(2)构建单元格数组:函数方法 Cell函数。如:
B = cell(2,
3);
B(1,3) =
{1:3};
(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)
9、函数句柄
函数句柄是用于间接调用一个函数的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)
数据类型转换如C语言中的强制类型转换相似e.g.:
y=9;
z=double(y);
matlab更改类型,matlab数据类型和转换相关推荐
- MATLAB的数值型数据类型有哪些,分别怎么表示
MATLAB的数值型数据类型有以下这些: 1 整数类型 MATLAB整数的数据类型.表示范围.类型转换函数如下表所示: 值得注意的是:上表中的类型转换函数名也就是该种类型在MATLAB中的记法. 2 ...
- c语言中其不同数据类型,C语言中不同类型数据间的转换
§2.4 不同类型数据间的转换 2.4.1 基本概念 C语言允许数据值从一种类型转换成另一种类型.数据类型的转换有如下三种基本形式: (1)同一类型但长度不同的数据间的转换. (2)定点方式与浮点方式 ...
- matlab中float类型的_【Python基础学习】2. 变量、基本数据类型及其转换
知行校园汇 记录学习.分享干货.吐槽人生! 关注 相关说明 文章内容:变量.基本数据类型及其转换 作者博客:csdn.cxhit.com www.cxhit.com 1. 变量 1.1 变量规则 在P ...
- matlab里数据类型转换,Matlab数据类型及转换(Matlab data type and conversion).doc
Matlab数据类型及转换(Matlab data type and conversion) Matlab数据类型及转换(Matlab data type and conversion) Matlab ...
- matlab地址结构与转换,matlab数据类型和转换
matlab数据类型和转换 Matlab中有15种基本数据类型,主要是整型.浮点.逻辑.字符.日期和时间.结构数组.单元格数组以及函数句柄等. 1.整型:(int8:uint8:int16:uint1 ...
- vba和matlab处理数据类型,VBA数据类型与转换
'1 数据类型综述 '在VBA中的数据类型有整数.文本.对象等类型.这些不同的类型有着特定的作用,在进行运算时也会占用 '不同大小的内存,所以我们在编写程序时为了提高运行效率,一般都要定义数据的类型. ...
- matlab cell2mat 函数将元胞转换成数值矩阵出错
matlab cell2mat 函数将元胞转换成数值矩阵出错 matlab 中经常涉及到各种数据类型的转换.在将元胞型转换成数值矩阵的过程中我遇到了一个非常有趣的问题,代码如下: % 元胞型转换为数值 ...
- Php的if自动转换类型,php之数据类型自动转换,php之数据类型转换_PHP教程
php之数据类型自动转换,php之数据类型转换 1:概述 ---php是一种弱类型的语言,它可以根据运行环境的变化而自动进行数据类型的转换 1.1转换成布尔类型的原则 以下值都将转换成布尔类型中的fa ...
- 类型转为数字_JavaScript自动数据类型的转换
JavaScript自动数据类型的转换 运算符 算术运算符 +,-,*,l,%(取余数) 关系运算符 .<=.>=.==.===.!=!== 逻辑运算符 &&与(且).|或 ...
- matlab2013语言设置,科学网—macOS MATLAB 更改界面语言设置——中文改为英文 - 李航的博文...
在macOS环境下安装MATLAB软件后,发现软件默认的安装语言是中文,于是会出现一些界面和错误提示都是用中文显示的,这样1)不利于理解一些函数和解决错误:2)中英文混搭阅读起来显得很凌乱. 为了避免 ...
最新文章
- MultiBox_Loss bug改进
- tuple parameter unpacking is not supported in python3
- java and asp.net
- 创建 Npm+webpack
- dNet项目数据访问层代码总结
- java -jar 和 java -cp用法
- Java通过IText导出word和pdf
- Mybatis组成部分
- 减少 JavaScript 代码量的原生技术
- iPad被停用,安装iTunes提示安装包出错解决办法
- python 3d重建_python三维重建
- ath9k usb wifi 网卡驱动浅析
- HTML5: select标签
- 罗辑思维2017-2018跨年演讲摘要
- BOSS直聘新财报:用户、技术两手抓
- 汉语与asc码互转最快的办法
- web网站开发基于高德地图浏览器定位
- oracle 行列转换函数
- 一般mysql的客户端用什么软件_mysql一般用什么管理工具?
- 如何在Windows资源管理器中自定义文件夹背景和图标