matlab矢量化if语句

matlab矢量化if语句,matlab,if-statement,vectorization,Matlab,If Statement,Vectorization,有人能告诉我以下matlab代码的矢量化实现吗。Predicted是一个包含两个值“pos”或“neg”的数组。当条件变为现实时,我必须复制这些值 p = 1; box = zeros(size(bbox)); for k = 1: size(predicted) if predicted(k) == 'pos' box(p,:) = bbox(k,:); p = p + 1; end

有人能告诉我以下matlab代码的矢量化实现吗。Predicted是一个包含两个值“pos”或“neg”的数组。当条件变为现实时,我必须复制这些值

    p = 1;
    box = zeros(size(bbox));


   for k = 1: size(predicted)
        if predicted(k) == 'pos'
            box(p,:) = bbox(k,:);
            p = p + 1;
        end
   end

谢谢你的回复。我可以使用字符串吗?因为它会增加将字符串转换为逻辑值的计算时间。否。字符串只是一组uint8值,它们对计算机没有任何意义。if语句需要布尔值,因此需要解释字符串。这就是你自己用预测(k)=‘pos’做的。它将为'p'o's'返回[1]
string
是一个新的MATLAB类。使用strcmp(预测的“pos”)来制作逻辑掩码,而不是逻辑掩码@user2033594@TroyHaskin:是的,正如回答中提到的。啊!错过了。我有一个不看评论的习惯。抱歉,谢谢你的回复。我可以使用字符串吗?因为它会增加将字符串转换为逻辑值的计算时间。否。字符串只是一组uint8值,它们对计算机没有任何意义。if语句需要布尔值,因此需要解释字符串。这就是你自己用预测(k)=‘pos’做的。它将为'p'o's'返回[1]
string
是一个新的MATLAB类。使用strcmp(预测的“pos”)来制作逻辑掩码,而不是逻辑掩码@user2033594@TroyHaskin:是的,正如回答中提到的。啊!错过了。我有一个不看评论的习惯。道歉。
bbox=rand(100); %demo data
predicted = rand(1,100)>0.5; %logical values
%You want to convert your array of strings into an array of logical values
%predicted=strcmp(predicted,'pos');
box=bbox(predicted,:);