Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在MATLAB中求两个不同长度阵列的具体并集_Arrays_Matlab_Indexing_Unique - Fatal编程技术网

Arrays 在MATLAB中求两个不同长度阵列的具体并集

Arrays 在MATLAB中求两个不同长度阵列的具体并集,arrays,matlab,indexing,unique,Arrays,Matlab,Indexing,Unique,我在Matlab中遇到了一个编码问题,我试图找到一个没有太多循环的解决方案,以减缓过程 我有一个数组,看起来像: A = [1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5] B = [0,1,0,1,1] 另一个看起来像: A = [1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5] B = [0,1,0,1,1] 在B中,元素的数量总是与其在A中的唯一元素相同,并且值对应于A中的唯一元素,换句话说: length(unique(A)) =

我在Matlab中遇到了一个编码问题,我试图找到一个没有太多循环的解决方案,以减缓过程

我有一个数组,看起来像:

A = [1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5]
B = [0,1,0,1,1]
另一个看起来像:

A = [1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5]
B = [0,1,0,1,1]
在B中,元素的数量总是与其在A中的唯一元素相同,并且值对应于A中的唯一元素,换句话说:

length(unique(A)) = length(B)
我想计算一个结果,告诉我a中B==0(C)和B==1(D)的索引


这里是我的方法:首先“计算”
Au
作为
A
的唯一向量。在下一步中,使用
B
Au
进行逻辑索引:
Au(逻辑(B))
-这将获取在
A
中找到的值。然后检查哪些值是该组的成员,然后获取它们的索引。不过,可能有一种更简单的方法

A = [1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5]
Au = unique( A );
B = [0,1,0,1,1];

C = find( ismember( A, Au(  logical(B) ) ) )
D = find( ismember( A, Au( ~logical(B) ) ) )

这里是我的方法:首先“计算”
Au
作为
A
的唯一向量。在下一步中,使用
B
Au
进行逻辑索引:
Au(逻辑(B))
-这将获取在
A
中找到的值。然后检查哪些值是该组的成员,然后获取它们的索引。不过,可能有一种更简单的方法

A = [1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5]
Au = unique( A );
B = [0,1,0,1,1];

C = find( ismember( A, Au(  logical(B) ) ) )
D = find( ismember( A, Au( ~logical(B) ) ) )

在这里
C
D
不是倒退了吗?你目前的做法是什么?你看过
find
函数了吗?@excaza谢谢-我改变了itIf
a=[1,3,4,6]
length(B)==6
?@excaza不,它等于4。这里
C
D
不是向后吗?你目前的方法是什么?你看过
find
函数了吗?@excaza谢谢-我改变了它如果
a=[1,3,4,6]
长度(B)==6?@excaza不,它等于4。谢谢,比我的for循环快多了!谢谢,比我的for循环快多了!