matlab如何一个一个从文件读取数据

现在的文件类似于20.50.60.70.80.91.0第一行是点的个数,剩下的行是xyz坐标。如果在c语言里面,我们可以ifstreamfin("file.txt")fi... 现在的文件类似于
2
0.5 0.6 0.7
0.8 0.9 1.0
第一行是点的个数,剩下的行是x y z坐标。如果在c语言里面,我们可以
ifstream fin("file.txt")
fin>>num;
for(int i=0; i<num; i++)
{
fin>>array[i][0]>>array[i][1]>>array[i][2];
}
那么在matlab里面我们如何实现上面的代码呢?
展开
 我来答
吓栋栋
推荐于2017-11-27 · TA获得超过2832个赞
知道小有建树答主
回答量:386
采纳率:100%
帮助的人:188万
展开全部
你这个是保持成.txt文件,还是excel表格。
下面我的这个回答中,有关于txt格式文件读取的函数。你可以看一下。
http://zhidao.baidu.com/question/360172958047097092.html
关于matlab读取txt文件的讨论网上有很多,你搜一下就出来了。一般最常用的就是fopen和textscan函数。
注意:excel文件的读取,要求电脑上必须要装office。我的电脑用的是wps所以不能使用matlab读取excel文件。
更多追问追答
追问
谢谢您的回答。我的就是txt文件,每读一行,就给数组赋值。
您能不能将我上面的C代码翻译成matlab。
fid=fopen('file.txt');
%接下来我就不会写了,不知道如何逐行读数据。
追答
clear
clc         %清除空间

fileid = fopen('C:\Users\Administrator\Desktop\test.txt')
data_n = textscan(fileid,'%f'); 
data = data_n{1};       %读取数据完毕
n = data(1)             %第一个元素保存点的个数
fclose(fileid)
for index = 1:n 
    x(index) = data((index-1)*3 + 2);   %这里由于坐标排成一排,需要这样分别读取坐标
    y(index) = data((index-1)*3 + 3);
    z(index) = data((index-1)*3 + 4);
end
n   %显示结果

y
z

结果如下:

n =
     2
x =
    0.5000    0.8000
y =
    0.6000    0.9000
z =
    0.7000    1.0000
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式