我有一个在我的单元格数组中搜索特定字符串的函数,如果找到则删除该行,如果成功则返回boolean为true,否则返回false:
BookCell = cellstr(find_by_title(TitleString));
Index = strcmpi(CharacterLibrary, BookCell);
IndexRef = sum(Index(:));
if IndexRef == 0
boolean = false;
else
LibraryArray(Index) = [];
boolean = true;
[LibraryCount,~] = size(LibraryArray);
end
end
我的问题是当' LibraryArray'只有一行,它变成一个1x0单元格数组而不是像数组更大时那样删除行。我现在的解决方案是简单地使用条件作为数组的大小,如果它是一个整个数组变为:
LibraryArray = {};
还有其他解决方法吗?
答案 0 :(得分:0)
尝试LibraryArray(Index,:) = [];
,这样您就会删除单个行而不是单个列:
C1 = {1};
C2 = {1};
C1(1) = []; % 1×0 empty cell array
C2(1,:) = []; % 0×1 empty cell array
size(C1) % [1 0]
size(C2) % [0 1]