如何使excel sheet中的值成为matlab中矩阵的元素

How to make value in excel sheet become element of matrix in matlab

我有 xls 文件名databus.xls,像这样

No. Bus Code    Voltage Mag.    Fasa    Beban       Generator       Stat Mvar       
                MW  Mvar    MW  Mvar    Qmin    Qmax    +Qc/-Ql'
1   1   1.04    0   50  30.99   0   0   0   0   0
2   0   1   0   170 105.35  0   0   0   0   0
3   0   1   0   200 123.94  0   0   0   0   20
4   2   1.02    0   80  49.58   318 0   0   0   0

如何让值成为矩阵a的分量

喜欢

a=[1  1   1.04 0 50 30.99 ...etc
   2  0   1    0  170 105.35 ...etc
   ...etc                           ]

如果这是一次性操作,copy-paste 是最简单的方法。如果没有,我建议 xlsread

尝试:

filename = 'databus.xls';
sheet = 1;
xlRange = 'A3:J7';

a = xlsread(filename, sheet, xlRange)

如果只有一个sheet,你可以跳过第二个参数,只做:

filename = 'databus.xls';
a = xlsread(filename,'A3:J7')

如果您不知道范围,只需按照上面 link 中给出的文档:

num = xlsread(filename) reads data from the first worksheet in the Microsoft® Excel® spreadsheet file named filename and returns the numeric data in array num.

因此,举个例子:

num = xlsread('test.xlsx')
num =
    1.0000    1.0000    1.0000   50.0000   30.0000
    2.0000    1.0000    1.0000  112.0000   60.0000
    3.0000    2.0000    4.0000   40.0000   20.0000
    4.0000    2.0000    3.0000   30.0000   20.0000
    5.0000    3.0000    2.0000   60.0000   42.5000

因为这会读取所有数字数据,如果只有少数列包含数字,您可能会得到一些主要包含 NAN 的行。如果是这样,您只需删除这些行即可。

您必须将任务分成两部分:

  1. 从 Excel.
  2. 中导出您的数据
  3. 将数据导入 Matlab。

对于任务 2,有几个选项(提供官方文档链接):

  1. csvread
  2. dimread
  3. fscanf
  4. importdata
  5. 等等?

另见 Ways to Import Text Files and How do you create a matrix from a text file in MATLAB?

如果您对任务 2 使用方法 1,则必须从 Excel.

导出为 csv
  1. 将您的工作表复制到新工作表中。
  2. 删除不进入矩阵的数据(根据您的问题,前两行)。
  3. 另存为 CSV。