通过索引数组对单元格数组重新排序

Kar*_*rus -1 matlab cell-array matrix-indexing

假设我有一个单元格数组x和一个整数数组y

x = {'apple', 'orange', 'banana', 'pear'};
y = [2 4 3 1];
Run Code Online (Sandbox Code Playgroud)

实际上,y代表的索引x。我现在想zx这些索引的顺序指定的元素重新排序来创建一个单元格数组。这会给我:

z = {'orange', 'pear', 'banana', 'apple'};
Run Code Online (Sandbox Code Playgroud)

我可以在一行中执行此操作而不必遍历每个元素并将其z依次放置吗?

小智 5

z = x(y);
Run Code Online (Sandbox Code Playgroud)

由于StackOverflow要求答案的长度至少为30个字符,因此该句子被创建为填充词。

这意味着:将z带有x由索引选择的元素frrm的单元数组按索引y的顺序放入。(这是MATLAB 下标的基础;索引的其他方法是线性逻辑的,有关详细信息,请参见Mathworks网站。)

  • 当然:-) 1.投票否决答案意味着“答案无用”。好吧,这里不是这样。另一方面,答案是如此基本,以至于只能是评论。但我认为将其发布为答案没有错。2.由于懒惰,我没有编辑它(这是您的答案,严格来说,这是改进您的任务),并且因为我认为可能真的打算包含该行。我只是想表达我对那条线的不同意见,而不是删除它 (4认同)