【问题标题】:Convert a vector to string in matlab and search for this string inside a cell array在 matlab 中将向量转换为字符串并在元胞数组中搜索此字符串
【发布时间】:2014-01-14 11:11:21
【问题描述】:

假设我在水平连接 3 个变量后创建了一个向量:

>>a=1;
>>b=0;
>>c=1;
>>vector=horzcat(a,b,c);

现在我要做的是将此向量转换为字符串并将此向量放入单元格表中。

 >>string=mat2str(vector);
 >>string =

    [1 0 1]

 >> C = cell(2, 2);
 >> C{1}{1}=string

 >> C = 

  {1x1 cell}    []
      []    []

我的问题是:如何在元胞数组中搜索这个值?我尝试了以下方法:

find(strcmp(C, string))

ans =

Empty matrix: 0-by-1

如您所见,matlab 在元胞数组中找不到此向量转换为字符串。有没有更简单的方法来做到这一点?

【问题讨论】:

    标签: arrays string matlab vector


    【解决方案1】:

    你确定要这个吗:

    C{1}{1}=string
    

    不是这个:

    C{1,1}=string
    

    ?

    如果您使用第二种方法,那么find(strcmp... 将起作用。第一种方法不起作用,因为您要在单元矩阵中创建单元矩阵,然后要求 strcmp 将您的字符串直接与单元格进行比较...

    【讨论】:

    • 我认为您可以通过C{1}=string 来完成。 {1,1} 符号似乎没有必要。
    • @Adiel 当然,但它是一个二维矩阵,因此例如使用C{1,2} = ... 比使用C{3} = ... 更有意义,即使它们都有效。所以为了保持一致,我选择了C{1,1},尽管C{1} 做同样的事情。
    猜你喜欢
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    相关资源
    最近更新 更多