首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 其他开发语言 >

Matlab中数据读写有关问题

2012-02-03 
Matlab中数据读写问题有这样一个txt文件:$MeshFormat2.2 0 8$EndMeshFormat$Nodes51 1 1 02 -1 1 03 -1 -1

Matlab中数据读写问题
有这样一个txt文件:
$MeshFormat
2.2 0 8
$EndMeshFormat
$Nodes
5
1 1 1 0
2 -1 1 0
3 -1 -1 0
4 1 -1 0
5 0 0 0
$EndNodes
$Elements
12
1 15 2 0 1 1
2 15 2 0 2 2
3 15 2 0 3 3
4 15 2 0 4 4
5 1 2 0 1 2 1
6 1 2 0 2 4 1
7 1 2 0 3 3 2
8 1 2 0 4 3 4
9 2 2 0 6 5 4 1
10 2 2 0 6 5 2 3
11 2 2 0 6 3 4 5
12 2 2 0 6 1 2 5
$EndElements

文本内容分为3部分,需要把第3部分12后面的数据读取出来,有什么好办法?
在网上查了很多方法,处理过程中都遇到问题。哎。

[解决办法]
可能比较笨,但是可以解决问题。关键是strread函数,可以把字符串读成单个部分,同时转换为数字。

1. 读文本
fid = fopen(文件名);
T = textscan(fid,'%s','delimiter','\n'); 
T = T{1};
2. 定位
loc = strmatch('$Elements', T );
3. 读数据
data = zeros(...); %预分配空间,如果宽度不一样,就分配的大些。
for i=1:size(data,1)
data(i, :) = strread(T{loc+1 + i});
end

热点排行