元胞数组

matlab中{}和()的区别

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-19 02:47:14
这几天在写Matlab时,对元胞数组使用了 {} 和 () 运算符,过程总是出现各种问题,简单记录一下。 先来看一下官方解释:您可以使用圆括号 () 对元胞数组进行索引,使用花括号 {} 对元胞的内容进行索引。 换句话说使用 () 得到的结果时元胞集,使用 {} 的到的时元胞中存的数据。 宏观理解元胞数组就是可以包含不同类型数据的数据类型,微观理解是元胞数组是由一个个元胞组成的数组,其中每个元胞只能包含相同类型的数据(数组或者元胞数组)。 而 () 只能索引到元胞集,不能获取到元胞里存储的数据;{} 能获取到元胞里存储的数据。 举个简答的例子: A = cell(2,2); B = {'A' 'B';'C' 'D'}; 首先声明一个 2 * 2 的空元胞数组A,再声明一个 2 * 2 的元胞数组其有初始值,我们现在要将 B 的第一行数据赋值给 A(1, 1)。 假如写成下面这个样子, A(1, 1) = B(1,:); 看一下结果: 看来是错误的,分析一下:A(1, 1)索引的是元胞集,可只其结果应该为一个元胞,而 B 本身为元胞数组,B 的第一行是两个元胞,使用两个元胞给一个元胞赋值当然会报错,看错误类型猜测就是数组维度问题。 那加入写成下面的这个样子呢? A{1, 1} = B{1,:}; 运行起来似乎没有任何错误 查看一下结果: 为什么其结果只有一个 A 呢? 分析一下:B

Matlab:strcat函数

心不动则不痛 提交于 2019-12-12 01:32:33
strcat 即 Strings Catenate,横向连接字符串。 作用是将数组 s1,s2,...,sN 水平地连接成单个字符串,并保存于变量combinedStr中。如果任一参数是 元胞数组 ,那么结果 combinedStr 是一个 元胞数组 ,否则,combinedStr是一个字符数组。 举个栗子 for i = 1:100 filename = strcat(‘d:\vedios\’,num2str(i),’.jpg’); end % 作用:从1到50顺序读取d:\vedios目录下所有i.jpg文件 来源: CSDN 作者: MagnumLu 链接: https://blog.csdn.net/qq_28584889/article/details/103487748

Matlab结构体和cell数组的理解

匿名 (未验证) 提交于 2019-12-03 00:30:01
这里分享几个链接,促进学习。 Matlab内存机制 点击打开链接 Matlab官方中文学习网站 点击打开链接 Matlab元胞数组 点击打开链接 Matlab结构体数组和元胞数组 点击打开链接 PS: a = zeros(8,8); b = a(1:7,1); c = a(:,:); d = a(1:end,2:3); %形成一个结构体 若要批量操作 如果并没有加入[],形同函数返回多个值那样 文章来源: Matlab结构体和cell数组的理解