中易网

怎样改MATLAB的数据类型?

答案:2  悬赏:0  
解决时间 2021-02-16 09:23
怎样改MATLAB的数据类型?
我需要把cell array改成double array?
高手来啊
最佳答案
没有这方面的函数,因为Cell中的元素大小和类型不同。
但可以试一下cell2mat函数,该函数把cell中的矩阵合成到单一矩阵中。
全部回答
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)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
王爱虎编的工业工程专业英语翻译哪里有
家满纷公寓在哪里啊,我有事要去这个地方
填护照表的时候把家庭成员父亲的生日填错了,
翁记烤鱼地址在哪,我要去那里办事
电缆指套怎么选择大小
360安全卫士中功能大全图标下的文字不显示
伊尔曼养生会所在什么地方啊,我要过去处理事
看中htc8x和努比亚小牛,该选哪款 只有那么多
美家居窗帘在什么地方啊,我要过去处理事情
新增贷款数据应该在哪里查询啊!!
辛德拉怎么打亚索
中行长城信用卡金卡和国际威士金卡信用额度一
威常物流(龙江镇沙龙路英明路段英明加油站同
开机突然多出的画面 问题大吗
小康酿皮地址有知道的么?有点事想过去
推荐资讯
用简便计算(40+4)x25
我在word的饼状图,在我将该word文件拷贝到其
南海盐步内衣批发
如图,这种白色的一串串的花叫什么
胜浦的三项非物质文化遗产
一个长方体游泳池长三十米宽十五米,水深一米,
信仪手工对裱地址在什么地方,想过去办事
狮子座的女人性格特点是什么
秋离未离是什么意思
怎么将ICEMCFD生成的网格CFX4或CFX5格式导出
龙山启文幼儿园地址在什么地方,想过去办事
四年级解方程(x十4)÷0.5=60
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?