2013-02-23 117 views
0

我需要最后一个单元(比方说第k个单元)不在它之前的单元中出现单元,即第(k-1)个单元其中k = 1,2,...,p。例如,k = 2,r = 2 ^(k + 2)+2,n = 2 ^(k)+1;单元阵列操纵matlab

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发生的所有条目{2}从DD {1}即

DD {1} = [3除去11 13 15 23]。
DD {2} = [1 5 21 25]

+0

这似乎并不有什么做与细胞阵列。你想要从列表中删除列表中的元素?另外,您应该在发布之前完成问题的撰写。在你最后一次编辑之前,这完全是无法理解的。 – oseiskar 2013-02-23 10:17:13

+0

@oseiskar;是的,我承认..代码格式的语法使我犯了这个错误(它是我第一次)。对于这个问题,我想元素周期性removed.I使用单元格数组,因为dd有不同的大小。尽管如此,你是对的。 – Kwesi 2013-02-23 10:27:57

回答

0

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

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

ans = 

    1  2  5 
+0

@oseikar,谢谢..我知道'setdiff'的命令。我没有发现它真的有用,特别是如果k很大。这将意味着比较很多单元格。 – Kwesi 2013-02-23 23:51:11