【问题标题】:xlswrite: Showing variable name in sheet name or somewherexlswrite:在工作表名称或某处显示变量名称
【发布时间】:2016-06-20 00:17:20
【问题描述】:
  1. 我正在使用 xlswrite。

我将大量变量放入一个 xlsx 文件的不同表格中。

一张纸一个变量。

所以我想把变量的名字作为工作表的名字。

我找不到任何执行此操作的命令。因此,也许这应该通过编写一些 python 代码并在 matlab 中有一行调用该 py 文件来完成。

  1. 如果这是不可能的,我将尝试将变量的名称放在第一行。但是,当变量超过 1 列时,它会说 vertcat 不起作用。

    xlswrite('test.xlsx',vertcat('A', [1 3; 1 2]))

我该怎么办?

=======================

一个后续问题

我根据 Suever 的回答编写了以下代码。

function xlswr(file_name,varargin)
xlswrite(file_name,varargin{i},inputname(i+1))

但是,当我调用这个函数时

xlswr('test.xlsx', A, A(:,2))

然后 A 打印在 test.xlsx 上,但 A(:,2) 没有。

只要输入不仅仅是像 A 这样的全名,而是变量的某些部分,它就不会打印出来。

我该如何解决这个问题?

【问题讨论】:

    标签: python matlab


    【解决方案1】:

    您的问题的原因是您试图将1 x 1 的字符串与2 x 2 的数据垂直连接,因此您显然会遇到尺寸不匹配的问题。

    如果要指定工作表名称,则只需使用third inputxlswrite 将工作表名称指定为字符串。

    xlswrite('test.xlsx', [1 3; 1 2], 'A')
    

    或者,如果您想包含文本和数值数据,您始终可以传递元胞数组而不是数值数组。这会将字符串和数字放到同一张表中

    xlswrite('test.xlsx', vertcat({'A', 'B'}, num2cell([1 3; 1 2])));
    

    【讨论】:

    • 谢谢!然而,xlswrite 的第三个输入是输入范围。这是如何工作的?
    • @user42459 您使用的是什么版本的 MATLAB?
    • 我不记得了,但没关系。它工作得很好。非常感谢!
    • 再次感谢您。我发布了一个后续问题。你能看一下吗?
    • @user42459 您发布的代码无效。您到底希望A(:,2) 做什么?第三个输入应该是一个字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    相关资源
    最近更新 更多