我有一个excel文件,如下所示:
每次我的文件都包含这样的行:2 1.258 4.587 6.325
时,我的代码不会读取.
或,
的数字,对于给定的行,只有2
是进口。
这是我的代码(虽然我的文件包含小数值,但效果不错):
Xtrain1 = xlsread('mma_kag\train1.xlsx','B:F');
错误是:
数据点的维度必须大于0
这意味着它不会读取文件而我已经检查过它。那是[]
。
如何解决这个问题?
以下是excel文件的link。
答案 0 :(得分:0)
单元格中的数字被视为文本,因此被视为错误。它与数字不是整数无关。有两种方法可以解决这个错误。
Excel方法:
有关详细信息,请阅读以下主题:
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`