在学习多种语言后,有时候会出现相似但又不同的一些的函数,这里记录一些在学习算法中Matlab中常见的一些函数。仅做记录。
cell(1,1)表达方法
目的:元胞数组,官网的cell函数
元胞数组是一种包含名为元胞的索引数据容器的数据类型,其中的每个元胞都可以包含任意类型的数据。元胞数组通常包含文本列表、文本和数字的组合或者不同大小的数值数组。通过将索引括在圆括号 () 中可以引用元胞集。
C = cell(n)
C = cell(n) 返回由空矩阵构成的 n×n 元胞数组。
C = cell(sz1,...,szN)
C = cell(sz1,...,szN) 返回由空矩阵构成的 sz1×...×szN 元胞数组,其中,sz1,...,szN 表示每个维度的大小。例如,cell(2,3) 返回一个 2×3 元胞数组。
类似于python中创建空列表的一种表示方法。
cell(1,1)运行的结果如下:
python里空列表的表示方法为:aa = [ ]
补充说明:matlab中元胞数组的创建与内容读取(参考链接)
b{'abc',[1,2,3];123,'a'}
小括号():获取指定元胞的大小
b(1,2)
ans =
1×1 cell 数组
{[1 2 3]}
大括号{ }:获取指定元胞的内容
b{1,2}
ans =
1 2 3
大括号{ }+小括号():获取指定元胞的内容/获取该数组指定元素
b{1,2}(1,2)
ans =
2
find 函数
目的:查找非零元素的索引和值,附上官网find函数讲解说明。
我只记录我用到的部分。
示例:i=route_k(find(route_k~=0,1,'last')) 。
函数用法讲解:
k = find(X,n,direction)(其中 direction 为 'last')查找与 X 中的非零元素对应的最后 n 个索引。direction 的默认值为 'first',即查找与非零元素对应的前 n 个索引。
setxor函数
目的:设置两个数组的异或
示例:unVisit=setxor(route_k,allSet)
函数用法讲解:
C = setxor(A,B) 返回不在 A 和 B 的交集中的数据(对称差集),不包括重复项。即,setxor 返回出现在 A 或 B 中,但不是同时出现在二者中的数据。C 是有序的。
A = [5 1 3 3 3]; B = [4 1 2];
C = setxor(A,B)
结果:
C = 1×4
2 3 4 5
4.ismember函数
目的:判断数组元素是否为集数组成员
Lia = ismember(A,B)
如果 A 中某位置的数据能在 B 中找到,Lia = ismember(A,B) 将返回一个在该位置包含逻辑值 1 (true) 的数组。数组中的其他位置将包含逻辑值 0 (false)。
[Lia,Locb] = ismember(___)
A = [5 3 4 2];
B = [2 4 4 4 6 8];
确定 A 的哪些元素同时也在 B 中。
Lia = ismember(A,B)
Lia = 1x4 logical array
0 0 1 1
A(3) 和 A(4) 可以在 B 中找到。
[Lia,Locb] = ismember(A,B)
Lia = 1x4 logical array
0 0 1 1
Locb = 1×4
0 0 2 1
A(3) 的最小索引为 B(2),A(4) 可以在 B(1) 中找到。