Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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
Matlab 根据另一个单元格数组对单元格数组进行排序_Matlab - Fatal编程技术网

Matlab 根据另一个单元格数组对单元格数组进行排序

Matlab 根据另一个单元格数组对单元格数组进行排序,matlab,Matlab,我有两个细胞阵列 reference = [{'A'}, {'B'}, {'H'}, {'D'}, {'G'}]; array2 = [{'A'}, {'G'}, {'H'}, {'B'}, {'D'}]; 在matlab中是否有任何智能方法可以根据单元格数组引用对数组2进行排序 函数应该返回array2的索引,顺序与“reference”相同(array2将与reference相同) 例如 magic_order = function(array2, reference) .... end

我有两个细胞阵列

reference = [{'A'}, {'B'}, {'H'}, {'D'}, {'G'}];
array2 = [{'A'}, {'G'}, {'H'}, {'B'}, {'D'}];
在matlab中是否有任何智能方法可以根据单元格数组引用对数组2进行排序

函数应该返回array2的索引,顺序与“reference”相同(array2将与reference相同)

例如

magic_order = function(array2, reference)
....
end
魔方命令(array2,reference)将返回

1,4,3,5,2
现在,如果我这样做了

array2(1,4,3,5,2)
我将得到与参考相同的结果

排序功能

reference = [{'A'}, {'B'}, {'H'}, {'D'}, {'G'}];
array2 = [{'A'}, {'G'}, {'H'}, {'B'}, {'D'}];
[a, b] = sort(reference)
isequal(reference, array2(b))
ans = 0
使用:

返回:

>> isequal(reference, array2(idx))

ans =

     1

使用的
intersect
(我已忽略)的第一个输出以与
reference
相同的顺序返回
reference
array2
的公共值。第三个输出是第一个输出中
array2
的索引。假设单元阵列相等,这将是
参考
array2
的索引

ismember的第二次输出也可能有用

reference = [{'A'}, {'B'}, {'H'}, {'D'}, {'G'}];
array2 = [{'A'}, {'G'}, {'H'}, {'B'}, {'D'}];
[~, pos] = ismember(reference,array2);
结果:

>> isequal(array2(pos),reference)

ans =

     1

标题是匹配,问题是排序。是哪一个?对不起,我没想到,措辞会让人困惑。基本上,无论你建议什么,结果都会使(订单)排列2,与参考文献相同。这并不清楚。请提供您期望的输出示例。如前所述,显而易见的答案是
array2=reference
@user702846正如我在下面所指出的,你需要自己开始培养这种耐心。你最近刚刚在你的问题中添加了关键信息,在此之前还完全不清楚。请容忍那些在空闲时间尽力帮助你的人。@user702846我不知道你为什么希望人们在你不能把问题说清楚的时候努力阅读你的问题。
>> isequal(array2(pos),reference)

ans =

     1