1

我有一个数据:

data = 

{1x6 cell}    {1x6 cell}

我想知道 data{2:end} 是否是一行,所以我使用了:

stop = 0;
for (k=2:length(data))
    if isrow(data{k})
         stop = 1;
    end
end

但是,函数“isrow”不适用于“cell”类型的参数。

我读过它,并且有一个函数:'cell2struct':

structArray = cell2struct(cellArray, fields, dim);

但我认为我不能使用它,因为我必须为这个函数提供“字段”和“暗淡”。

4

4 回答 4

1

尝试以另一种方式检查它:

  function bIsRow = isrow(x)
      bIsRow = (size(x,2) == numel(x));
  end
于 2012-06-15T07:50:12.403 回答
1

我真的不明白这里有什么问题。这是我在 R2010b 上得到的:

>> data = {cell(1,6) cell(1,6) cell(3,6)}
data = 
    {1x6 cell}    {1x6 cell}    {3x6 cell}

>> isrow(data{2})
ans =
     1

>> isrow(data{3})
ans =
     0
于 2012-06-15T07:55:30.127 回答
0

尝试

if isrow(cell2mat(data{k}))
于 2012-06-15T07:51:17.853 回答
0

您可以使用以下代码isrow()

function Y = isrow(X)
%
% ISROW    True for row vectors.
%
%   Y = ISROW(X) returns logical 1 if X is a row vector, 0 otherwise.
%   ISROW returns 1 for scalars also.
%
%    See also: ISCOL.
%

if ndims(X)==2 & size(X,1)==1 & size(X,2)>=1
   Y = logical(1);
else
   Y = logical(0);
end

通过 MATLAB Central 获取源代码

于 2013-08-07T15:48:32.807 回答