24小时热门版块排行榜    

查看: 1137  |  回复: 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

专家顾问 (职业作家)

引用回帖:
8楼: Originally posted by godchenkun at 2015-04-21 08:14:08
mesh也解决了,因为xy在网格上都是等差均匀分布的,所以我干脆自己生成xy坐标,分别为m个和n个,然后将向量z reshape成m*n矩阵,就能画了^_^...

恩,挺好。只要保证(x,y)->z的映射正确就可以。
知其然,知其所以然。
9楼2015-04-21 08:35:50
已阅   回复此楼   关注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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 317求调剂 +3 申子申申 2026-03-19 6/300 2026-03-20 07:36 by Iveryant
[考研] 329求调剂 +5 想上学吖吖 2026-03-19 5/250 2026-03-19 23:56 by 23Postgrad
[考研] 081700化工学硕调剂 +3 【1】 2026-03-16 3/150 2026-03-19 23:40 by edmund7
[考研] 288求调剂,一志愿华南理工大学071005 +5 ioodiiij 2026-03-17 5/250 2026-03-19 18:22 by zcl123
[考研] 271材料工程求调剂 +6 .6lL 2026-03-18 6/300 2026-03-19 15:41 by haoshis
[考研] 一志愿北京化工大学0703化学318分,有科研经历,求调剂 +3 一瓶苯甲酸 2026-03-14 3/150 2026-03-19 15:17 by 尽舜尧1
[考研] 266求调剂 +5 阳阳哇塞 2026-03-14 10/500 2026-03-19 15:08 by 阳阳哇塞
[考研] 一志愿天津大学化学工艺专业(081702)315分求调剂 +11 yangfz 2026-03-17 11/550 2026-03-19 15:06 by houyaoxu
[考研] 0817调剂 +3 没有答案_ 2026-03-14 3/150 2026-03-19 09:51 by Xu de nuo
[考研] 材料专业求调剂 +5 hanamiko 2026-03-18 5/250 2026-03-18 20:19 by 星空星月
[考研] 295求调剂 +3 一志愿京区211 2026-03-18 5/250 2026-03-18 17:03 by zhaoqian0518
[考研] 0854,计算机类招收调剂 +3 胡辣汤放糖 2026-03-15 6/300 2026-03-18 12:09 by 上岸上岸……..
[考研] 0703化学求调剂 总分331 +3 ZY-05 2026-03-13 3/150 2026-03-18 10:58 by macy2011
[考研] 环境工程调剂 +8 大可digkids 2026-03-16 8/400 2026-03-18 09:36 by zhukairuo
[考研] 有没有道铁/土木的想调剂南林,给自己招师弟中~ +3 TqlXswl 2026-03-16 7/350 2026-03-17 15:23 by TqlXswl
[考研] 302求调剂 +4 小贾同学123 2026-03-15 8/400 2026-03-17 10:33 by 小贾同学123
[考研] 283求调剂 +3 听风就是雨; 2026-03-16 3/150 2026-03-17 07:41 by 热情沙漠
[考研] 0703化学调剂 290分有科研经历,论文在投 +7 腻腻gk 2026-03-14 7/350 2026-03-16 10:12 by houyaoxu
[考研] 070305求调剂 +3 mlpqaz03 2026-03-14 4/200 2026-03-15 11:04 by peike
[考研] 中科大材料与化工319求调剂 +3 孟鑫材料 2026-03-14 3/150 2026-03-14 20:10 by ms629
信息提示
请填处理意见