Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文本文件读入matlab_Matlab_Text Files - Fatal编程技术网

将文本文件读入matlab

将文本文件读入matlab,matlab,text-files,Matlab,Text Files,我一直试图将文本文件读入matlab。 文本文件的示例如下所示: 顺序、等级、纪律、职务、服务、性别、工资 1,教授,B,19,18,男性,139750 2,教授,B,20,16,男性,173200 3,助理,B,4,3,男性,79750 我的代码如下所示: clc clear all DELIMITER = ','; HEADERLINES = 1; % Import the file newData1 = importdata('afifi.txt', DELIMITER, HEADERLI

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

顺序、等级、纪律、职务、服务、性别、工资
1,教授,B,19,18,男性,139750
2,教授,B,20,16,男性,173200
3,助理,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

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

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

readtable('afifi.txt','Delimiter',DELIMITER,'ReadVariableNames',true);
可以使用
newData1.Properties.VariableNames
替换
fieldnames(newData1)
以获取列名。总而言之,您问题中的代码可以按预期工作:

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

如果将
afifi.txt
重命名为
afifi.csv
,则可以执行此操作

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

并获取
all

文件中的所有内容。正确导入文件后,
newData1
有两个字段:
data
textdata
,第一个字段是salary列,第二个字段是其余字段。您希望如何导入数据?请看一看,我希望它们都在一个变量中。为什么它被分为数据和文本数据?我的意思是,为什么不显示173200和79750的值呢?在Matlab中也是不同的。