假设我有一个单元格数组raweeg
,其中每个单元格都是一个矩阵,第一列中有时间点,第二列中有一些标记。我想创建一个矢量来存储时间点,当标记不等于-1时。我发现了一种非优雅(而不是工作)的方法来创建一个大小为1x1的零向量,然后在循环中附加以下值。
P.S。:正好有96个非 - " -1"价值观和相应的时间点。
startpoints = zeros(1,1);
for i = length(raweeg{1,1}(:,1))
if raweeg{1,1}(i,2) ~= -1
startpoints(end+1,1) = raweeg{1,1}(i,1);
end
end
谢谢
答案 0 :(得分:1)
raweeg
单元格,对此进行矢量化
startpoints = raweeg{1,1}(raweeg{1,1}(:,2) ~= -1, 1);
这称为logical indexing。
请确保您的标记不是使用浮点计算生成的,否则比较可能会经常失败。
P.S。代码中的问题是for
循环语句,它应该是:
for i = 1:length(raweeg{1,1}(:,1))
或者更好,for i = 1:size(raweeg{1,1},1)
。
没有" 1:
"部分,它只有一个迭代,最后一行。