删除单元格数组中的最终单元格行

时间:2017-04-06 08:29:28

标签: arrays matlab

我有一个在我的单元格数组中搜索特定字符串的函数,如果找到则删除该行,如果成功则返回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 = {};

还有其他解决方法吗?

1 个答案:

答案 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]