1. matlab中cell数据提取
使用num2cell
该函数能够把数组矩阵(包括数值)转换成cell矩阵
例如
A = rand(4,7,3);
C = num2cell(A);
得到
Name Size Bytes Class Attributes
C 4x7x3 5712 cell
2. matlab 怎么获取cell内的数据
这个问题很有意思,要综合matlab的几个函数。
解决方案如下:
1.建立一个文本文件function.txt当然里面的内容就是cos(t)+cos(2*t)+exp(-3*t)这个函数了(要提醒的是,乘号一定要有你的cos(2t)就没有这个是不行的,还有对于e这样的值,在matlab的表示是exp,因此e^(-3*t),也需要改写成exp(-3*t))。
2.使用importdata('function.txt')就可以得到这个字符串形式的函数,不过这个函数是装在一个cell中,所以得取出来,代码如下:fc=importdata('function.txt');fc=fc{1};
3.取出来之后得到的是个字符串啊!怎么计算呢?matlab中专门有一个针对字符串函数的求值函数,eval,用这个函数之前建议你先help一下。eval的调用有两种形式,一种是拼接,另一种就是直接对字符串所表示的函数进行代入求值,很显然这里我们需要用到第二种。代码如下:
t=1.2;%%测试值
y=eval(fc);
完整代码如下:
funcion.txt中cos(t)+cos(2*t)+exp(-3*t)
fc=importdata('function.txt');
fc=fc{1};
t=1.2;
y=eval(fc);
3. matlab cell中提取数字
MATLAB中只有矩阵和cell
要取出第r行、第c列的矩阵元素用:A(r,c)
要取出第r行、第c列的cell成员用:A{r,c}
4. matlab中cell数据提取出不重复的
用load,textread或者importdata文本(txt)格式的文件,只能识别数据,对其中的文本无法读取。可以使用fscanf或者sscanf的方式读取,思路为:定义cell矩阵,先全部以字符的方式读入,再将其中的数字转换为数据格式。代码如下:m=8;n=3;data=cell(m,n)
;%定义cell矩阵,存储文件内容fid=fopen('test.txt','r')
;%以只读方式打开文件for i=1:mfor j=1:ndata{i,j}=fscanf(fid,'%s',[1,1])
;%以字符方式读取每个值,遇空格完成每个值的读取endendfclose (fid)
;for i=1:mfor j=2:ndata{i,j}=str2double(data{i,j})
;%将文本格式转为数字格式endendstr=cell(m,1);用于存储data的第一列for i=1:mstr{i}=data{i,1}
;end
5. matlab 提取cell内容
可以通过{}进行读取,例如,c2={'a','b'}然后取c2{1}和c2{2}
6. matlab从cell中取数值
Cell是Matlab中的一种数据类型,概念和结构类似。用大括号定义,括号里可以是任意类型的数据或矩阵。
7. matlab如何提取cell中的数据
1、先进入软件界面,软件所占空间较大,需耐心等待启动,进入后,左上方有新建,点击创建编辑器文件,接着在新窗口点击保存。
2、只有保存的文件,才可运行,所以这里执行了此操作,在下图界面中,名称位置根据实际需求设置,名字不可有中文,这里保持了默认,点击保存。
3、接着在刚刚保存的文件,同一文件夹下面,新建或者复制过来一个xls表格,内容如下图,每列有纯数字行,也有中英字符、数字混合,将介绍读入函数用法。
4、对于纯数字的内容,可以只将读入的结果给一个变量,该变量是矩阵的形式,对于元素的引用,可以用“(行数,列数)”的形式引用。但是这里给的例子是混合格式,所以看到,凡是字符部分,都为空。
5、再增加一个结果变量,结果如下图,第一个变量结果同步骤4,而第二个则保存着中文和英文字,形式则如图示,引用元素需要分别针对各矩阵。
6、最后增加成3个变量,第三个变量为胞体数组,格式内容最接近原表格,对于数据引用,使用cell调用方法,所以可以对于有各种类型数据的xls文件,就可以使用3个变量。这样读入介绍完成。
7、对于写入,使用wirite,最简单的用法是不控制储存的具体行数和列数,按顺序保存,这里将b矩阵内容存到名为1~6.xls文件中,运行下图程序,会生成该文件,打开内容。
8、如果想使用更复杂的控制,限制储存范围,则可通过doc方式查找具体帮助。该函数还有更加精细的控制。这样如何存储,介绍完成。
8. matlab提取cell中一列
1、读入列数和行数均一致的数据可是直接用loadfilename或者load('filename');或者s=load('filename');如果filename中为纯数据,则直接读入到一个矩阵中。
2、importdata函数可读入数据(可以是文件,也可以是系统粘贴板上的内容),对于行列数不一致的按照第一行的列数对其,其余的NaN补齐,以矩阵方式储存。a=inportdata(__,delimiterIn,headerlinesIn);指定数据的分割方式和跳过指定的行数进行读数据,不过该方式将以cell的方式储存。
3、csvread函数专门针对数据中间以“,”隔开的文件。利用R1(行,以0开始,列也一样),C1(列)可以指定开始读入数据的位置,与R2,C2配合使用可以指定读入数据的范围。
4、dlmread函数可以读取“ASCII-分隔符”的数据文件,用法与csvrad类似。