我有一个数据:
data =
{1x6 cell} {1x6 cell}
我想知道数据{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);
但我认为我不能使用它,因为我必须给这个函数提供'fields'和'dim'。
答案 0 :(得分:1)
尝试以其他方式检查:
function bIsRow = isrow(x)
bIsRow = (size(x,2) == numel(x));
end
答案 1 :(得分: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
答案 2 :(得分:0)
尝试
if isrow(cell2mat(data{k}))
答案 3 :(得分: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