【问题标题】:How can I write the contents of array cells in the matlab to Excel using loops?如何使用循环将matlab中数组单元格的内容写入Excel?
【发布时间】:2019-06-03 06:27:49
【问题描述】:

我正在尝试将单元格数组内容写入 excel 工作表,单元格数组为 (1x4) 单元格。

第一个cell({1,1})包含一个字符串(glcm11),第二个cell({1,2})包含(glcm12),第三个cell({1,3})包含(glcm13),第四个单元格是(@987654328 @)。

我想写字符串(glcm11,glcm12,glcm13,glcm14a2:25 范围内)和(glcm21,glcm22,glcm23,glcm24a6:a9 范围内),(glcm31,glcm32,glcm33,glcm34a10:a13 范围内)

如何使用循环将这些单元格写入 matlab 代码中的 excel 表格?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    无循环写入元胞数组 5 次:

    filename = 'glcm.xlsx';
    
    % Create a cell array in the form:
    % {'glcm11'}    {'glcm12'}    {'glcm13'}    {'glcm14'}
    % {'glcm21'}    {'glcm22'}    {'glcm23'}    {'glcm24'}
    % ...
    % {'glcm51'}    {'glcm52'}    {'glcm53'}    {'glcm54'} 
    C = compose('glcm%d%d',(1:5)',1:4);
    
    % Reshap the cell array to one column in the form:
    % {'glcm11'}
    % {'glcm12'}
    % {'glcm13'}
    % {'glcm14'}
    % {'glcm21'}
    % {'glcm22'}
    % {'glcm23'}
    % {'glcm24'}
    % ...
    % {'glcm54'}
    C = reshape(C', [numel(C) 1]);
    
    
    % Write cell array starting frim 'A2':
    
    % For Matlab R2019a and newer:
    writecell(C,filename,'Range','A2');
    
    % For older versions of Matlab:
    xlswrite(filename,C,1,'A2')
    

    【讨论】:

    • 但我需要将这些字符串保存到一个范围 (a2:a5) ,然后我想保存 (glcm21,glcm22,glcm23,glcm24) 到一个范围 (a6:a8) ,依此类推.
    • 这是我将 (glcm11,glcm12,glcm13,glcm14) 保存到 1x4 单元格的代码:str1='glcm'; mycellarray=细胞([1 4]);对于 k=1:length(mycellarray) str2(k)=num2str(k); mycellarray{1,k}=[str1 '1' str2(k)];
    • 代码将结果完全保存在四个单元格中,但我想将这些结果保存到范围 (a2:a5)
    • @AhmadSarairah:在你的问题中没有提到你有字符串 (glcm21,glcm22,glcm23,glcm24) 并且不清楚它是如何存储在你的变量中的:你有这个数据吗( glcm21,glcm22,glcm23,glcm24) 或者你想更新元胞数组
    • 是的,我想更新元胞数组,但我在 matlab 中的 (writecell) 变量有错误
    猜你喜欢
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 2017-01-15
    • 2015-09-17
    相关资源
    最近更新 更多