0

我在 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];

bBox 数据是从 boxPoint 获取的,用于创建用于多目标检测的边界框。

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

我想成为:

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

谢谢,

4

1 回答 1

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,[]).'
于 2014-03-13T05:06:18.897 回答