将数据从 .txt 文件导入 Matlab
Importing Data from a .txt file into Matlab
首先感谢您阅读我的问题。
我正在尝试将具有以下格式的文件中的数据导入 Matlab:
#Text
#Text: Number
...
#Text: Number
Set1:
1 2
3 4
Set2:
5 6
7 8
...
我想将这些数字转化为以下形式的两个矩阵:
(1 5
3 7)
和
(2 6
4 8)
我一开始只构建了这两个矩阵中的第一个。
Winkel = 15;
xp = 30;
M = readtable('Ebene_1.txt')
M([1:4],:) = [];
M(:,3) = [];
for i=0:Winkel-1
A = table2array(M((2+i*31:31+i*31),1))
end
但是这个解决方案只给了我无法转换为法向量的元胞数组。
我也尝试过使用 importdata
命令,但也找不到使它起作用的方法。我知道还有很多其他问题与我的类似,但我找不到所有数据都在一个列中的问题。另外,有很多 Matlab 命令可以将数据导入 Matlab,我不确定哪个是最好的。
第一次在网上问这样的问题,欢迎私信我。
您可以使用 readtable 导入您在示例中提供的数据,但是由于文件的格式,您需要稍微调整一下函数。
您可以使用 detectImportOptions 告诉函数如何导入数据。
%Detect import options for your text file.
opts = detectImportOptions('Ebene_1.txt')
%Specify variable names for your table.
opts.VariableNames = {'Text','Number'};
%Ignore last column of your text file as it does not contain data you are interested in.
opts.ExtraColumnsRule = 'ignore';
%You can confirm that the function has successfully identified that the data is numeric by inspecting the VariableTypes property.
%opts.VariableTypes
%Read your text file with detectImportOptions.
M = readtable('Ebene_1.txt',opts)
现在您已经 table M
,只需应用基本的 Matlab 运算即可获得您指定的矩阵。
%Find numerical values in Text and Number variables. Ignore NaN values.
A = M.Text(~isnan(M.Text));
B = M.Number(~isnan(M.Number));
%Build matrices.
A = [A(1:2:end)';A(2:2:end)']
B = [B(1:2:end)';B(2:2:end)']
输出:
A =
1 5
3 7
B =
2 6
4 8
首先感谢您阅读我的问题。
我正在尝试将具有以下格式的文件中的数据导入 Matlab:
#Text
#Text: Number
...
#Text: Number
Set1:
1 2
3 4
Set2:
5 6
7 8
...
我想将这些数字转化为以下形式的两个矩阵:
(1 5
3 7)
和
(2 6
4 8)
我一开始只构建了这两个矩阵中的第一个。
Winkel = 15;
xp = 30;
M = readtable('Ebene_1.txt')
M([1:4],:) = [];
M(:,3) = [];
for i=0:Winkel-1
A = table2array(M((2+i*31:31+i*31),1))
end
但是这个解决方案只给了我无法转换为法向量的元胞数组。
我也尝试过使用 importdata
命令,但也找不到使它起作用的方法。我知道还有很多其他问题与我的类似,但我找不到所有数据都在一个列中的问题。另外,有很多 Matlab 命令可以将数据导入 Matlab,我不确定哪个是最好的。
第一次在网上问这样的问题,欢迎私信我。
您可以使用 readtable 导入您在示例中提供的数据,但是由于文件的格式,您需要稍微调整一下函数。
您可以使用 detectImportOptions 告诉函数如何导入数据。
%Detect import options for your text file.
opts = detectImportOptions('Ebene_1.txt')
%Specify variable names for your table.
opts.VariableNames = {'Text','Number'};
%Ignore last column of your text file as it does not contain data you are interested in.
opts.ExtraColumnsRule = 'ignore';
%You can confirm that the function has successfully identified that the data is numeric by inspecting the VariableTypes property.
%opts.VariableTypes
%Read your text file with detectImportOptions.
M = readtable('Ebene_1.txt',opts)
现在您已经 table M
,只需应用基本的 Matlab 运算即可获得您指定的矩阵。
%Find numerical values in Text and Number variables. Ignore NaN values.
A = M.Text(~isnan(M.Text));
B = M.Number(~isnan(M.Number));
%Build matrices.
A = [A(1:2:end)';A(2:2:end)']
B = [B(1:2:end)';B(2:2:end)']
输出:
A =
1 5
3 7
B =
2 6
4 8