如何在excel文件MATLAB中保存数据?

时间:2015-12-28 09:11:19

标签: excel matlab

我想在excel文件中为所有帧保存音高,偏航和滚动数据。例如:如果我有200帧,那么我想在excel文件中保存200帧信息。我试过但我的代码只存储一个帧数据。exceldata

fitting_model='models/Chehra_f1.0.mat';
load(fitting_model);     
mov=VideoReader('7_a.avi'); %Read video file and create an object
c=mov.NumberOfFrames;
for k=1:c
    a = read(mov, k);
    img=im2double(a);           
    disp(['Detecting Face in ']);
    faceDetector = vision.CascadeObjectDetector(); % detect face in an image
    bbox = step(faceDetector, img);                %create boundary box around face
    test_init_shape = InitShape(bbox,refShape);    %initialize facial points in variable
    test_init_shape = reshape(test_init_shape,49,2);
    if size(img,3) == 3
        test_input_image = im2double(rgb2gray(img));
    else
        test_input_image = im2double((img));
    end
    disp(['Fitting']);    
    MaxIter=6;
    test_points = Fitting(test_input_image,test_init_shape,RegMat,MaxIter);
load('3D_Shape_Model.mat');
n=49;
    test_image=img;
    imshow(test_image);hold on;
        % % Compute 3D Head Pose
    if(n==49)
        test_shape=test_points;
        [pitch,yaw,roll] = ComputePose(PDM_49,test_shape(:));
          filename='framesdata.xlsx';
        header = {'Pitch', 'yaw ','roll'};
        new_data = num2cell([pitch(:), yaw(:), roll(:)]);
        output = [header; new_data];
        xlswrite(filename,output);
    end     
    plot(test_shape(:,1),test_shape(:,2),'b*');
    title([num2str(i),' : Pitch = ',num2str(pitch),' ; Yaw = ',num2str(yaw),' ; Roll = ',num2str(roll)]);
    set(gcf,'units','normalized','outerposition',[0 0 1 1]);
    pause(0.5);
    close all;
end

1 个答案:

答案 0 :(得分:0)

正如@excaza所述,您需要将xlswrite命令移出循环或指定您正在编写的单元格。有关详细信息,请参阅xlswrite Doc。正确的语法是:

xlswrite(filename,A,xlRange)

以下是他们提供的示例:

filename = 'testdata.xlsx';
A = {'Time','Temperature'; 12,98; 13,99; 14,97};
sheet = 2;
xlRange = 'E1';
xlswrite(filename,A,sheet,xlRange)

您只需要提供xlswrite开始写入数据的地址。