MATLAB cell & struct
CELL
cell的每个单元都可以存储任何数据,比如传递函数等。当然,存储矩阵更是没有问题的了。但是用cell数据类型之前,要先初始化。
a=cell(n,m)
那么就把a初始化为一个n行m列的空cell类型数据。
如何赋值呢?
a{1,1}=rand(5)
那么a的1行1列的单元中存储的就是一个随机的5×5的方阵了。
那么要用第一个单元中的方阵中的某个值呢?
可以如下引用:a{1,1}(2,3)
就可以了,引用cell单元时要用{},再引用矩阵的某个数据就要用()了。
cell单元中的每个单元都是独立的,可以分别存储不同大小的矩阵或不同类型的数据。
下面举个例子:
a=cell(2,2);%预分配
a{1,1}='cellclass';
a{1,2}=[1 2 2];
a{2,1}=['a','b','c'];
a{2,2}=[9 5 6]; >> a{1,1}
ans =
cellclass >> a{1,2}
ans =
1 2 2 >> a{2,:}
ans =
abc ans =
9 5 6 >> b=a{1,1}
b =
cellclass
Struct
结构体的赋值,这里不建议用下面这种形式进行统一赋值,
s = sturct('field1',values1,'field2',values2,…)
而是建议直接赋值,就是对每一个属性进行单独赋值,因为每一个属性的长度不同,所以,直接赋值,就省去了声明的过程,方便,快捷;
例如我们要声明下面的结构体:
example.name='jiangnan_hugo';
example.adress='beijing';
example.age='23';
直接输入以上语句便可。
如果我们要查看结构体的所有值,那么可以直接输入结构体的名字,然后回车,就可以列出结构体的每项的名称和值,如果要显示某一个属性,通过单独调用,例如
example.name
,便会显示其名称。
如果我们要删除结构体的某一项属性,那么可以通过函数Rmfield,来实现,如果要增加一个属性,那么可以直接进行赋值便可。
example=rmfield(example,'age')
假如我们想要知道这个结构体具体有多少字段(属性),我们可以通过函数fieldnames来获取字段名称,同时我们也可以通过函数isfield来判断是否存在某一字段。
fieldnames(example) isfield(example,'age')
MATLAB cell & struct的更多相关文章
- matlab中struct创建方法
MATLAB中struct创建方法可分为:直接创建法和struct()函数创建法 (1)直接创建: 直接定义字段,像使用一般matlab变量一样,不需要事先声明,支持动态扩充.下面创建一个Studen ...
- MATLAB cell 数组介绍
转载:http://www.matlabsky.com/forum.php?mod=viewthread&tid=21089 由于工作需要,经常要处理大量的实验数据.基本都是由仪器导出来,随着 ...
- Matlab中struct的用法
struct在matlab中是用来建立结构体数组的.通常有两种用法: s = struct('field1',{},'field2',{},...) 这是建立一个空的结构体,field1,field ...
- matlab cell
cell元包是matlab中提供的一种数据类型,功能强大. 关于cell的创建: 1.跟一般创建举证一样,直接使用C = {A B D E}这种形式,不过这里把"[]"改成了}&q ...
- [转]MATLAB cell数据类型
细胞型数据类型(cell)使不同类型和不同维数的数组可以共存,细胞型数组实际上可以认为是一种以任意形式的数组为分量的多维数组. 1.细胞型数据的定义 1)直接赋值定义:细胞型变量在定义时需要使用大括号 ...
- 「Python」Numpy equivalent of MATLAB's cell array
转自Stackoverflow.备忘用. Question I want to create a MATLAB-like cell array in Numpy. How can I accompli ...
- matlab中cell array的理解
1. matlab中有一个函数iscell() 用于判断一个数组是不是cell array 参考:MATLAB Function Reference iscell Determine whether ...
- Matlab实用技巧
1 Matlab Cell 编程模式 在一个长长的脚本m文件中,可能需要对其中的一段反复修改,查看执行效果,这时,cell模式就非常有用了.cell模式相当于将其中的代码拷贝到命令窗口中运行.两个% ...
- matlab中如何将视频保存成图像
利用MATLAB将视频的每一帧保存成一幅图像,并自动命名.本文方法简单,容易学习. 首先,读入视频.代码如下: mov = VideoReader('xxxxxx.avi'); % 将xxxxxx.a ...
随机推荐
- ASP.NET MVC运行机制源码剖析
我们都知道ASP.NET首先是从Global.aspx中开始运行的, 在Application_Start()中添加路由映射后, 就由URLRouting组件创建IRouteHandler并执行, 在 ...
- Android闹钟设置的解决方案
Android设置闹钟并不像IOS那样这么简单,做过Android设置闹钟的开发者都知道里面的坑有多深.下面记录一下,我解决Android闹钟设置的解决方案. 主要问题 API19开始AlarmMan ...
- MVC————扩展方法MvcHtmlString
使用前: public static class MyHtmlHelper { public static string GroupPage(this HtmlHelper helper) { str ...
- jquery里面的$(this)和this都什么时候用,有什么区别
当你用的是jquery时,就用$(this),如果是JS,就用this $(this).html( $(this).html() + " BAM! " + i ); 这个里的htm ...
- hihocoder1033交错和
题目链接 坑: 1.ll x,y; z=x*y;可能会溢出,于是我写成x%mod*y%mod 仍旧错误,要写成x%mod*(y%mod). 2.f(9019)=1. 要注意如果为0,下一位的符号根据0 ...
- VMware精简系统Win系列|体积更小更稳定
此Win系列基于VMware10 给个我自用的超精简VM10.0.3 XP重新制作体积大了一点但更稳定,压缩包166M 制作了Win 2003,压缩包171.4M Win7重新制作体积更小更稳定,压缩 ...
- go -- 返回的json怎么去掉字段为空的字段啊
- 0924Linux常用命令
写的不错 转载了,有需要的同学们,可以多多学习,适合小白哦 http://blog.csdn.net/xiaoguaihai/article/details/8705992/ 关于最后增加一点 tar ...
- 【BZOJ 1492】【NOI 2007】货币兑换Cash
这是道CDQ分治的例题: $O(n^2)$的DP: f [1]←S* Rate[1] / (A[1] * Rate[1] + B[1]) Ans←SFor i ← 2 to n For j ←1 to ...
- hdu4725最短路变形 添加点
The Shortest Path in Nya Graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...