1

我有 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                           ]
4

2 回答 2

2

如果这是一次性操作,复制粘贴是最简单的方法。如果没有,我会建议xlsread

尝试:

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

a = xlsread(filename, sheet, xlRange)

如果只有一张纸,您可以跳过第二个参数并执行以下操作:

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

如果您不知道范围,只需按照上面链接中给出的文档进行操作:

num = xlsread(filename) 从名为 filename 的 Microsoft® Excel® 电子表格文件中的第一个工作表中读取数据,并在数组 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 的行。如果是这种情况,您可以简单地删除这些行。

于 2015-01-06T09:00:13.353 回答
0

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

  1. 从 Excel 导出数据。
  2. 将数据导入 Matlab。

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

  1. csv读取
  2. 暗读
  3. fscanf
  4. 导入数据
  5. ETC。?

另请参阅导入文本文件的方法如何在 MATLAB 中从文本文件创建矩阵?.

如果您对任务 2 使用方法 1,则必须从 Excel 导出为 csv。

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

于 2015-01-06T09:07:26.780 回答