分离x和y信息

时间:2016-02-19 12:32:57

标签: image matlab csv

我正在尝试使用我的matlab脚本将X和Y分成两个文件,但我不确定如何将它们分开。我的代码如下所示:

close all
clear all
clc

jpgFiles = dir('*.jpg');
numFiles = length(jpgFiles);
mydata = cell(1,numFiles);

% mydata = zeros(numFiles);
for k = 1:numFiles
    mydata{1,k} = imread(jpgFiles(k).name);
end
% initialize your array of coordinates
data = zeros(30,2,numFiles);

for k=1:numFiles
    figure;
    imshow(mydata{k});
    [x, y] = ginput(30) %select 30 points on the image and return the 
                        %xy coords in return
    data(:,:,k) = [x y]; %save the xy coords as data matrix 
end
%Get data into a csv text file for easy export to excel 
filename = 'test.csv';
csvwrite(filename,data)

我试图将"data(:,:,k) = [x y];"写成2行,一行用x,一行用y,但这不起作用。 任何人都可以帮助我,因为它会节省我很多时间,因为我只需要Y信息。

1 个答案:

答案 0 :(得分:0)

使用[x y]连接变量xy,例如

x = 
    1
    2
    3

y =
    3
    2
    1

,然后[x y]将导致

ans = 
    1    3
    2    2
    3    1

由于您只需要y坐标,只需不要执行此操作;-)将data初始化为只有1列,而不是2列:< / p>

data = zeros(30,1,numFiles);

并使用

写入
data(:,:,k) = y; 

-

或者,如果您 需要x信息用于其他目的(我不能100%确定您的问题是什么意思,所以这里有一个方法,如果你的意思是那样),那么你不想做我上面提到的改变。而是使用

仅将data的第二列写入CSV文件
csvwrite(filename,data(:,2,:))

这意味着:只占data的第二列,并将其写入filename