将一行中的数据拆分为两列中的多行

时间:2014-03-13 04:28:35

标签: matlab row bounding-box two-columns

我在MATLAB中遇到问题,将我的数据拆分为2列中的多行。 目前我有一个单行分类的坐标点(x,y)数据。但是我想将它们分成多行,这样每行只有两列。

bBox = [289  1  609 1  289  17  369  145  273  161  289 161  561  241  577  241  577  257  689  257  641  273  673  273  641  321  673  321];

从boxPoint获取bBox数据以创建用于多个对象检测的边界框。

任何人都可以帮我分割这些数据吗?

我想成为:

bBOX = [289 1; 609 1; 289 17; .....];

我的部分代码如下所示:

[~, predictions] = svmclassify(P',label,model); % classifying each window

get_detect = predictions.*[predictions > 0.7];

[r,c,v]= find(get_detect);

for i = 1:r
    bBox =cell2mat(boxPoint(r));
    rectangle('Position',[bBox(1),bBox(2),64,128],'LineWidth',1, 'EdgeColor','y');
end

谢谢,

1 个答案:

答案 0 :(得分:2)

一种解决方案是写:

% Transform bBox into a column vector
bBox = bBox(:); 
% Reshape n-by-1 vector bBox into two columns
bBox = [bBox(1:2:end-1),bBox(2:2:end)]; 

另一个是:

bBox = reshape(bBox.',2,[]).'