Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image MATLAB中xlswrite命令使用中的问题_Image_Matlab - Fatal编程技术网

Image MATLAB中xlswrite命令使用中的问题

Image MATLAB中xlswrite命令使用中的问题,image,matlab,Image,Matlab,我必须为多个图像运行代码,并比较所有图像的输出。对于运行多个图像,我遵循了此链接中给出的想法: 它工作得很好。现在,我必须将所有图像的结果导出到excel文件中。为此,我在MATLAB中使用xlswrite命令。我面临的问题是,输出在excel文件中的同一位置被覆盖,因此在模拟结束时,我只有一个输出保存在excel文件中。将第一个图像的结果写入excel文件后,应将下一个图像的结果写入下一个位置,依此类推。我不能这样做。请帮我做这个 我使用的代码: 我的代码的最后五行: 如果需要,我将提供我的完

我必须为多个图像运行代码,并比较所有图像的输出。对于运行多个图像,我遵循了此链接中给出的想法:

它工作得很好。现在,我必须将所有图像的结果导出到excel文件中。为此,我在MATLAB中使用xlswrite命令。我面临的问题是,输出在excel文件中的同一位置被覆盖,因此在模拟结束时,我只有一个输出保存在excel文件中。将第一个图像的结果写入excel文件后,应将下一个图像的结果写入下一个位置,依此类推。我不能这样做。请帮我做这个

我使用的代码: 我的代码的最后五行: 如果需要,我将提供我的完整代码。请帮帮我,我是MATLAB新手

试试看

另一个选项是附加到数据,并在循环外部调用
xlswrite

试试看


另一个选项是附加到数据,并在循环外部调用
xlswrite

它总是写入相同位置的原因是您总是为它提供相同的单元格引用
'E1'
。您需要按照OP的建议,使用专门的xls追加脚本,或者更改循环中的单元格引用,或者一次写入全部内容

示例:

在循环中写入:

xlStartColStr = 'E';
xlStartRow = 1;
for myIndex = 1:something
    % Do your stuff...

    try
        ex = {...};
        xlStartRow = myIndex;
        cellRef = [xlStartColStr num2str(xlStartRow)];
        xlswrite('output.xls', ex, 'SBF', cellRef);
    catch err
        error([mfilename ':ErrorSavingFile'], ...
            'Could not save file for image %g : %s', myIndex, err.message);
    end
end
或者一次写下:

allMyData = {};
for myIndex = 1:something
    % Do your stuff...

    ex = {...};
    allMyData = [allMyData; ex];
end

cellRef = 'E1';
try
    xlswrite('output.xls', allMyData, 'SBF', cellRef);
catch err
    error([mfilename ':ErrorSavingFile'], ...
        'Could not save file for images : %s', err.message);
end

循环中的
try…catch
版本可以在出现故障时为您提供额外的信息,但在非循环版本中执行此操作仍然是一个好主意,因此我也将其包含在其中。第一种方法能够保存部分数据,即使其余数据不是有效的for
xlsread
(只需将错误更改为警告或某种日志消息),但速度会较慢

它总是写入同一位置的原因是您总是为它提供相同的单元格引用
'E1'
。您需要按照OP的建议,使用专门的xls追加脚本,或者更改循环中的单元格引用,或者一次写入全部内容

示例:

在循环中写入:

xlStartColStr = 'E';
xlStartRow = 1;
for myIndex = 1:something
    % Do your stuff...

    try
        ex = {...};
        xlStartRow = myIndex;
        cellRef = [xlStartColStr num2str(xlStartRow)];
        xlswrite('output.xls', ex, 'SBF', cellRef);
    catch err
        error([mfilename ':ErrorSavingFile'], ...
            'Could not save file for image %g : %s', myIndex, err.message);
    end
end
或者一次写下:

allMyData = {};
for myIndex = 1:something
    % Do your stuff...

    ex = {...};
    allMyData = [allMyData; ex];
end

cellRef = 'E1';
try
    xlswrite('output.xls', allMyData, 'SBF', cellRef);
catch err
    error([mfilename ':ErrorSavingFile'], ...
        'Could not save file for images : %s', err.message);
end

循环中的
try…catch
版本可以在出现故障时为您提供额外的信息,但在非循环版本中执行此操作仍然是一个好主意,因此我也将其包含在其中。第一种方法能够保存部分数据,即使其余数据不是有效的for
xlsread
(只需将错误更改为警告或某种日志消息),但速度会较慢

非常感谢你帮助我。你救了我的命,非常感谢你帮我。你救了我的命。谢谢你,我也会试试这个。谢谢你,我也会试试这个