常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell)。和一般的数值
矩阵一样,元胞数组的内存空间也是动态分配的。
(1)元胞数组的创建
>>
a={'matlab',20ones(2,3),1:10}
a
=
'matlab'
[
20]
[2x3
double]
[1x10
double]
>>
b=[{'matlab'},{20}{ones(2,3)},{1:10}]
b
=
'matlab'
[
20]
[2x3
double]
[1x10
double]
>>
c={10}
c
=
[10]
>>
c(1,2)={2}
c
=
[10]
[2]
>>
c(2,2)={5}
c
=
[10]
[2]
[]
[5]
>>
isequal(a,b)
ans
=
1
>>
whos
Name
Size
Bytes
Class
Attributes
a
2x2
388
cell
ans
1x1
1
logical
b
2x2
388
cell
c
2x2
208
cell
用cell函数创建元胞数组,创建的数组为空元胞。cell函数创建空元胞数组的主要目的是为数组预先分配连续的存储空间,节约内存占用,提高执行效率。
>>
a=cell(1)
a
=
{[]}
>>
b=cell(1,2)
b
=
[]
[]
>>
c=cell(3,3)
c
=
[]
[]
[]
[]
[]
[]
[]
[]
[]
>>
d=cell(2,2,2)
d(:,:,1)
=
[]
[]
[]
[]
d(:,:,2)
=
[]
[]
[]
[]
>>
whos
Name
Size
Bytes
Class
Attributes
a
1x1
4
cell
ans
1x1
1
logical
b
1x2
8
cell
c
3x3
36
cell
d
2x2x2
32
cell
(2)元胞数组的数据获得
从元胞数组中读取数据,可保存为一个标准的数组或一个新的单元数组,或取出数组进行计算。元胞数组中数据的访问,可通过元胞内容的下标进行,用元胞数组名加大括号{}。大括号中数值表示元胞的下标。如a{1,2}表示元胞数组中第一行第二列的元物昌举胞。
>>
a={20,'matlab'ones(2,3),1:3}
a
=
[
20]
'matlab'
[2x3
double]
[1x3
double]
>>
str=a(1,2)
str
=
'matlab'
>>
class(str)
ans
=
cell
>>
str=a{1,2}
str
=
matlab
>>
class(str)
ans
=
char
()和{}有着本质的区别,大括号用于表示元胞的内容,小括号表示指定的元胞。
a
=
[
20]
'matlab'
[2x3
double]
[1x3
double]
>>
a{2,1}(2,2)
ans
=
0.9134
>>
a{2,1}(2,3)
ans
=
0.0975
>>
a{1,2}(2)
ans
=
a
使用元胞的下标,可将一个元胞数组的子集赋值给另一个变量,创建新的元胞数组。
>>
a=[{1},{2},{3}{4},{5},{6}{7},{8},{9}]
a
=
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
>>
b=a(2:3,2:3)
b
=
[5]
[6]
[8]
[9]
>>
c=a(1:3,2:3)
c
=
[2]
[3]
[5]
[6]
[8]
[9]
本例使用元胞下标的方式创建了新的元胞数组b和c,通过结果看出b和c就是元胞数组a的一部分。
(3)元胞数组的删除和重塑
要删除单元数组中的行或列,可以用冒号表示单元数组中的行或列,然后对其赋一个空矩阵即可。
a={20,'matlab'ones(2,3),1:3}
a
=
[
20]
'matlab'
[2x3
double]
[1x3
double]
>>
a(1,:)=[]
a
=
[2x3
double]
[1x3
double]
>>
a={20,'matlab'ones(2,3),1:3}
>>
a{1}=[]
a
=
[]
'matlab'
[2x3
double]
[1x3
double]
>>
a(1)=[]
a
=
[2x3
double]
'matlab'迅告
[1x3
double]
>>
a(2)=[]
a
=
[2x3
double]
[1x3
double]
>>
a(1,2)=[]
???
A
null
assignment
can
have
only
one
non-colon
index.
>>
a(1)=[]
a
=
[1x3
double]
元宝数组和其他数组一样,也可以通过reshape函数改变形状,改变后的元胞数组与原元胞数组的元素个数相同,不能通过改变形状来添加或删除元胞数组中的元素。
>>
a=cell(4,4)
a
=
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
>>
size(a)
ans
=
4
4
>>
b=reshape(a,2,8)
b
=
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
>>
size(b)
ans
=
2
8
(5)元胞数组中的 *** 作函数
cell:创建空的元胞数组
cellfun:为元胞数组的每个元胞执行指定的函数
celldisp:显示所有元胞的内容
cellplot:利用图形方式显示元胞数组
cell2mat:将元胞数组转变成为普通的矩阵
mat2cell:将数值矩阵转变成为元胞数组
num2cell:将数值数组转变成为元胞数组
deal:将输入参数赋值给输出
cell2struct:将元胞数组转变成为结构
struct2cell:将结构转变为元胞数组
iscell:判断输入是否为元胞数组
用xlsread函数,比如A=xlsread('d:/filename.xls','sheet1'),那么表格中的数据就存到键兄A矩阵中了。然后B=cell(3,5)%创建一个稿码袭3*5的元胞数组,B{1,1}=A(1:2,:)%将A数组中的前两行数据存入元胞数组B的第1行1列的位置。同理,B{1,2}=A(3:4,:)%将A数组中的前3-4行数据存入元胞数组B的第1行2列的位置。模汪1 、 mcc4.0 编译环境设置在桌面上右键单击“我的电脑”图标出现以下菜单
单击“属性”菜单项,出现“系统特性”对话框,单击“高级”选项卡,如下图所示
在上图中,单击“环境变量”按钮,出现“环境变量桐腔”对话框, 添加系统变量 matlab 值为 C:\MATLAB7 即 matlab7.0 的安装路径,如下图所示
在环境变量 path 中加入 C:\MATLAB7\bin\win32 ,如下图所示
按“确定”完成设置后, 重启计算机或注销当前用户卜轮腔 ,即可应用新设置。
2 、 Matlab7.0 编译器设置
(1) mex 命令设置
(a) 运行 Matlab ,在 Matlab 的命令窗口 (Command Window) 键入“型衫 mex -setup ”命令后,按回车键,安装 Matlab 编译器;
(b) 命令窗口出现如下提示:
Please choose your compiler for building external interface (M
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)