【问题标题】:Cell array manipulation matlab元胞数组操作matlab
【发布时间】:2013-02-24 06:10:09
【问题描述】:

我需要最后一个单元格中的元素(比如第 k 个),它之前的单元格中没有出现,即第 (k-1) 个单元格,其中 k = 1,2,...,p。一个例子,k=2,r=2^(k+2)+2,n=2^(k)+1;

for i=1:k
    dt = 1:2^i:n;
     for j=1:2^(k-i)+1
       cd(j,:)= dt+ r*(j-1);
     end
   dd{i}=cd;
   clear cd
end        

dd{1} =[1 3 5; 11 13 15; 21 23 25]
dd{2} = [1 5;21 25]

我希望从 dd{1} 中删除 dd{2} 中出现的所有条目,即

dd{1}= [3 11 13 15 23]。
dd{2}= [1 5;21 25]

【问题讨论】:

  • 这似乎与元胞数组无关。您希望从某个列表中删除列表中出现的元素吗?此外,您应该在发布之前完成问题的编写。在您上次编辑之前完全无法理解。
  • @oseiskar;是的,我承认..代码格式的语法让我犯了那个错误(这是我第一次)。对于这个问题,我希望删除重复出现的元素。我使用单元格数组,因为 dd 具有不同的大小。不过你是对的。

标签: matlab matrix cell-array


【解决方案1】:

我认为您可以使用setdiff 来实现您的目标(两个数组的差异):

setdiff([1,2,3,4,5],[3,4])

ans =

     1     2     5

【讨论】:

  • @oseikar,谢谢..我知道“setdiff”命令。我发现它并没有真正的帮助,尤其是如果 k 很大。这意味着要比较很多单元格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多