【问题标题】:reading a text file into matlab将文本文件读入matlab
【发布时间】:2016-01-26 07:01:45
【问题描述】:

我一直在尝试将文本文件读入 matlab。
文本文件示例如下所示:

顺序、等级、纪律、自上而下、服务、性别、薪水
1,Prof,B,19,18,男,139750
2,Prof,B,20,16,男,173200
3,AsstProf,B,4,3,男,79750

我的代码如图:

clc
clear all
DELIMITER = ',';
HEADERLINES = 1;
% Import the file
newData1 = importdata('afifi.txt', DELIMITER, HEADERLINES);
% Create new variables in the base workspace from those fields.
vars = fieldnames(newData1);
for i = 1:length(vars)
    assignin('base', vars{i}, newData1.(vars{i}));
end

由于某种原因,它无法正确读取最后一列。它只读取第一行中的第一个值,然后不读取最后一列的其余部分。任何人请告诉我如何解决这个问题!

【问题讨论】:

  • 文件导入正确,newData1有两个字段:datatextdata,第一个是salary列,后者是其余字段。您希望如何导入数据?改为查看textscan
  • 我希望它们都在一个变量中。为什么分为data和textdata?我的意思是为什么不出现值 173200 和 79750?
  • Matlab中也有不同的Ways to Import Text Files

标签: matlab text-files


【解决方案1】:

您可以使用readtable 轻松导入包含混合数据的文本文件。该行如下:

readtable('afifi.txt','Delimiter',DELIMITER,'ReadVariableNames',true);

您可以将fieldnames(newData1) 替换为newData1.Properties.VariableNames 以获取列名。放在一起,您问题中的代码可以按预期工作:

clc
clear all
DELIMITER = ',';
% Import the file
newData1 = readtable('afifi.txt','Delimiter',DELIMITER,'ReadVariableNames',true);
% Create new variables in the base workspace from those fields.
vars = newData1.Properties.VariableNames;
for i = 1:length(vars)
    assignin('base', vars{i}, newData1.(vars{i}));
end

【讨论】:

    【解决方案2】:

    如果你将afifi.txt重命名为afifi.csv,你可以这样做,

    [num, txt, all] = xlsread('afifi.csv');
    

    并在all 中获取所有内容

    【讨论】:

      猜你喜欢
      • 2015-07-07
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多