2017-06-03 18 views
1

我有一个Excel文件,它看起来像这样的输入:带“。”的值不从Excel文件

excel file in png

每次我的文件包括这样一行:2 1.258 4.587 6.325,我的代码不.,和阅读数字对于给定的行,只导入2

这是我的代码(当我的文件包括十进制值,其效果很好,但不):

Xtrain1 = xlsread('mma_kag\train1.xlsx','B:F'); 

错误是:数据点的

尺寸必须大于0

这意味着它不会读取文件并且已经检查过它。这是[]。 如何解决这个问题?

这里是excel文件的link

+0

您可以上传或提供excel文档吗?这个问题也与svm无关。 – Mikhail

+0

@Mikhail我添加了excel文件(截图),因为我不知道如何在这里加载文件 – magda

+0

只是上传文件 – Mikhail

回答

0

您的单元格中的数字被视为文本,因此是错误。它与数字不是整数无关。有两种方法可以解决这个错误。

Excel的方法

  • 选择所有单元(通过按下Ctrl键+)。
  • 然后点击this。这将打开一个下拉菜单。
  • 现在选择转换为数字
  • 保存excel文件(Ctrl + S)。 (保持前一个副本,如果你需要的)

excel approach

有关此信息,请阅读本主题:
Fix text-formatted numbers by applying a number format


MATLAB方法:
使用the third output of xlsread和文本转换为双这样的:

[~, ~, Xtrain1] = xlsread('mma_kag\train1.xlsx','B:F'); 
Xtrain1 = str2double(Xtrain1); %Converting the strings in the cell to double 

编辑: 如果您的档案编号为任意分散(如您上传新文件)的文本,你需要先和第三产出xlsread。类似以下内容:

[tmp,~, Xtrain1] = xlsread('train1.xlsx'); %Select the range as per your need if necessary 
Xtrain1 = str2double(Xtrain1);  
%Above line will convert the text into numbers and the numbers will be converted to NaNs 
Xtrain1(isnan(Xtrain1))=tmp(~isnan(tmp)); 
%Above line retrieves the numbers from `tmp` & stores them in `Xtrain1`