如何在一个文本文件中保存多个数据

时间:2016-02-18 07:18:09

标签: matlab for-loop save multiple-axes

我想在一个文本文件中保存多个对象的高度和宽度值,但它只保存了最后处理的图像数据。这是我的代码:

contents = get(hObject,'Value')
pilih=guidata(gcbo);
theImage{1}=getImage(handles.axes1);
theImage{2}=getImage(handles.axes2);
theImage{3}=getImage(handles.axes3);
theImage{4}=getImage(handles.axes4);
theImage{5}=getImage(handles.axes5);

for z = 1:5;
    Img = theImage{z};
    abu=rgb2gray(Img);
    cb=imclearborder(abu);
    thresh=graythresh(cb);
    b=im2bw(cb,thresh);
    bw=bwareaopen(b,60);
    bwfill=imfill(bw,'holes');
    s=regionprops(bwfill,'BoundingBox');
    objects=cell(numel(s),1);
    for idx=1:numel(s)

        bb=floor(s(idx).BoundingBox);
        out=bsxfun(@times,Img,uint8(bwfill));
        objects{idx}=out(bb(2):bb(2)+bb(4),bb(1):bb(1)+bb(3),:);
    end
        X = zeros(3, numel(objects));
            for k = 1:numel(objects)
                k1=objects{k};
                c1=rgb2gray(k1);
                t1=graythresh(c1);
                biner1=im2bw(c1,t1);
                [height,width]=size(biner1);
                a1=bwarea(biner1);
                X(:,k)=[height;width;a1];
            end
end

save grading/datauji.txt X -ascii;

我该怎么办?非常感谢你。这是我的照片。其中有5个,我想将所有对象的高度和宽度数据保存在一个txt文件中。

1 个答案:

答案 0 :(得分:0)

试试这段代码,

  

numel = 100;
file = fopen('ans.txt','w');
testdata = rand(3, numel);
X = zeros(3, numel);
for i=1:numel
    X(:,i) = testdata(:,i);

    fprintf(file,'%ld %ld %ld\n', X(1,i), X(2,i), X(3,i));
end

fclose(file);

我已经创建了一个虚拟数据点,即100.我已经在' testdata'中创建了变量中的随机数据,然后我迭代了数字'并且每次保存都以逗号分隔类型保存所有3个数据

  

ans.txt

11.0 2.2 3.1 
4.2 5.2 1.1
32.1 542 12.1
12. 12 23

希望这有效。