将.txt文件中的数据导入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)

现在您已经有了表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

相关内容

  • 没有找到相关文章

最新更新