【发布时间】:2014-08-26 05:52:33
【问题描述】:
我有一个二维大矩阵 (A)。这个矩阵的每个单元格要么是空的,要么包含一个单词。我想分别在这个矩阵的每一行中找到唯一的单词,并将它们存储在另一个二维矩阵(B)中,这样 B 的第 K 行包含 A 中第 K 行的唯一元素。我试过这种方式,但它说输入必须是元胞数组:
% engine
B = sort(A,2) ;
d = [true(1,size(B,2)) ; diff(B)>0] ;
B = mat2cell(B(d).',1,sum(d));
% check if B{K} contains the unique elements of the Kth row of A
for i=1:size(A,1),
tf(i) = isequal(B{i},unique(A(i,:))) ;
end
all(tf)
感谢您帮助解决此错误。
【问题讨论】:
-
我很困惑。您说每一行要么包含一个单词,要么为空,但您的描述和标题表明每行有多个单词。您能否澄清以下内容:(1)
A是什么?这是一个单元格数组吗? (2) 如果A是一个元胞数组,那么每个元素都是一个单词吗? (3) 这个元胞数组的每一行都是一个句子吗? -
当然,这里是澄清:1)A是我作为输入的二维矩阵。我说矩阵的每个单元格要么是空的,要么包含一个单词,而不是每一行。 2)每个单元格将包含一个单词,如果它不为空。 3)不,矩阵的每一行都不是一个句子。
-
好的,那么
A是一个二维单元矩阵吗? 2D 矩阵可以意味着任何东西......双打,结构,单元格等。另外,你能发布一个你拥有的一些数据的例子,所以当我回答你的问题时,你可以看到我是否正确回答了你的问题? -
没关系,我有一个答案给你。给我一点时间。
标签: matlab matrix row unique words