24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1180  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

godchenkun

银虫 (正式写手)

[求助] 新手求助matlab读入文件格式设置及画三维图 已有1人参与

matlab菜鸟一枚,求教高手指导:
从如下两种格式的txt文件读入文件:
格式一:
s axis  -2.50000E+01 to -2.45000E+01
t axis  -2.50000E+01 to -2.45000E+01
            1.00537E-06   0.4723

s axis  -2.50000E+01 to -2.45000E+01
t axis  -2.45000E+01 to -2.40000E+01
            1.03832E-06   0.4831
...省略很多行

格式二:
direct ray-trace source image flux
s axis  -2.50000E+01 to -2.45000E+01
t axis  -2.50000E+01 to -2.45000E+01
            1.00537E-06   0.4723

direct ray-trace source image flux
s axis  -2.50000E+01 to -2.45000E+01
t axis  -2.45000E+01 to -2.40000E+01
            1.03832E-06   0.4831
...省略很多行

目标:s axis行的两个数值取平均作为x坐标,t axis行两数值取平均作为y坐标,t axis行下一行第一个数据作为z坐标,画三维曲面。
          我的想法是将x、y、z坐标存入三个数组,然后mesh或surface,但不知道怎么写读入文件的格式来达到上述目的。
         两个文件样本在附件,请高手教我,谢谢。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mygt_hit

专家顾问 (职业作家)

引用回帖:
4楼: Originally posted by godchenkun at 2015-04-20 16:28:11
你好,我用你的方法试过了,确实能读取文件中的数据,但是我用下列语句提取列向量时遇到错误:

x1=MyData1(:,1);
x2=MyData1(:,2);
y1=MyData1(:,3);
y2=MyData1(:,4);
z=MyData1(:,5);
x=(x1+x2)/2;y=(y1 ...

将MyData1后面的圆括号改为花括号就可以了。圆括号提出来的是cell格式,花括号是提取cell中的内容,具体到这里就是向量或矩阵,就可以直接运算了。
知其然,知其所以然。
5楼2015-04-20 18:30:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

godchenkun

银虫 (正式写手)

纠正一下,是将xyz存入三个矩阵,不是数组。
2楼2015-04-20 10:42:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mygt_hit

专家顾问 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
godchenkun: 金币+5, ★★★★★最佳答案 2015-04-20 14:20:12
假定第一个文件名Data1.txt,第二个文件名Data2.txt,如下的代码分别读取这两个文件中的数字,存在MyData1和MyData2中,每一组6个数,接下来的你自己处理一下吧。

fid1 = fopen('Data1.txt');
MyData1 = textscan(fid1,'%*s %*s %f %*s %f \r\n %*s %*s %f %*s %f \r\n %f %f \r\n');
fclose(fid1);

fid2 = fopen('Data2.txt');
N = 1;
while ~feof(fid2)
    fgetl(fid2);
    MyData2{N} = textscan(fid1,'%*s %*s %f %*s %f \r\n %*s %*s %f %*s %f \r\n %f %f \r\n');
    N = N + 1;
end
fclose(fid2);
知其然,知其所以然。
3楼2015-04-20 12:59:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

godchenkun

银虫 (正式写手)

引用回帖:
3楼: Originally posted by mygt_hit at 2015-04-20 12:59:25
假定第一个文件名Data1.txt,第二个文件名Data2.txt,如下的代码分别读取这两个文件中的数字,存在MyData1和MyData2中,每一组6个数,接下来的你自己处理一下吧。

fid1 = fopen('Data1.txt');
MyData1 = textsc ...

你好,我用你的方法试过了,确实能读取文件中的数据,但是我用下列语句提取列向量时遇到错误:

x1=MyData1(:,1);
x2=MyData1(:,2);
y1=MyData1(:,3);
y2=MyData1(:,4);
z=MyData1(:,5);
x=(x1+x2)/2;y=(y1+y2)/2;

到这里,提示加法不能用于cell的运算,也就是提取出来的列还是矩阵格式不是向量格式?不知道是不是这个意思,有什么办法可以解决呢。。。
4楼2015-04-20 16:28:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 新一代电子信息294求调剂 不挑学校 +6 Ytyt11 2026-04-09 7/350 2026-04-11 10:52 by AA小小木虫
[考研] 22408 352分求调剂0854类 +4 努力的夏末 2026-04-09 4/200 2026-04-11 09:57 by zhq0425
[考研] 337求调剂 +4 研s. 2026-04-10 4/200 2026-04-11 08:57 by zhq0425
[考研] 求调剂288 +6 ioodiiij 2026-04-10 8/400 2026-04-10 21:07 by zhouxiaoyu
[考研] 269求调剂 +10 啊啊我我 2026-04-07 10/500 2026-04-10 10:38 by 高维春
[考研] 生物与医药273求调剂 +18 荔题南墙 2026-04-05 19/950 2026-04-10 08:14 by kangsm
[考研] 297求调剂 +27 GENJIOW 2026-04-07 30/1500 2026-04-09 23:20 by wolf97
[考研] 材料专硕初试分332一志愿西北工业大学, +12 故人?? 2026-04-09 12/600 2026-04-09 18:34 by Ccclqqq
[考研] 085600材料与化工专硕329 求调剂 +24 额cc 2026-04-06 25/1250 2026-04-09 16:01 by wp06
[考研] 一志愿武理车辆 281 求调剂 +5 上岸研究生. 2026-04-07 5/250 2026-04-09 15:56 by only周
[考研] 生物学308分求调剂(一志愿华东师大) +13 相信必会光芒万 2026-04-06 16/800 2026-04-09 13:54 by 徐良白眉大侠
[考研] 086000生物与医药调剂 +7 awwwwwooooo 2026-04-09 7/350 2026-04-09 13:31 by 北极159263
[考研] 270求调剂 +3 031127 2026-04-06 4/200 2026-04-08 21:00 by 逆水乘风
[考研] 求调剂,现在还能填的 +3 上岸小莹加油 2026-04-08 3/150 2026-04-08 14:30 by zhq0425
[考研] 315求调剂 +17 欣喜777 2026-04-04 18/900 2026-04-08 13:54 by hangsimei
[考研] 336求调剂,一志愿中科大 +9 墨彧 yuyu 2026-04-06 9/450 2026-04-08 11:24 by 想读书的菌菌
[考研] 312求调剂 +4 Say Never 2026-04-04 4/200 2026-04-08 08:41 by barlinike
[考研] 调剂求助(生物与医药) +6 @6952 2026-04-06 6/300 2026-04-07 23:52 by lys0704
[考研] 277求调剂 数一104分 +9 瓶子PZ 2026-04-05 14/700 2026-04-07 17:52 by 蓝云思雨
[考研] 328求调剂 +4 ghhh88888 2026-04-06 5/250 2026-04-07 14:45 by ghhh88888
信息提示
请填处理意见