matlab怎样读取三维数据

比如数据a.mat,格式为<180x360x116double>我要读出<180x360x1>这一层的数据阵,该怎么写程序?我要读出<1x1x116>这一列数据,该怎么写... 比如数据a.mat,格式为<180x360x116 double>
我要读出<180x360x1>这一层的数据阵,该怎么写程序?
我要读出<1x1x116>这一列数据,该怎么写程序?

matlab小白求解答,先谢过了~
展开
 我来答
shine戚七七
推荐于2016-02-25 · TA获得超过4.7万个赞
知道大有可为答主
回答量:2万
采纳率:75%
帮助的人:2643万
展开全部
看是什么数据格式,有的可以直接load
比如这样的数据文件:

38.643 52.888 0.08600065
38.643 52.844 0.08600065
38.643 52.486 0.1420001
38.639 52.881 0.08600065
38.638 53.194 0.1860005
38.634 53.303 0.1070006
38.631 52.186 0.07900037
38.631 52.167 0.07900037
38.626 53.586 0.09600026
38.624 52.495 0.6620004

A = load('cloud3d.dat'); %读入数据
%x,y,z轴坐标
x=A(:,1);
y=A(:,2);
z=A(:,3);
scatter3(x,y,z); %散点图
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4'); %构造坐标点
pcolor(X,Y,Z);
shading interp; %伪彩色图
fcontourf(X,Y,Z); %等高线图
figure,surf(X,Y,Z); %三维曲面
listener_rp
2020-05-13
知道答主
回答量:10
采纳率:100%
帮助的人:1.7万
展开全部
filename='XXX\a.mat';
fid=fopen(filename,'r');
J0=fread(fid,180x360x116,'double');
J=zeros(180,360,116);
for i=1:(116-1)
for j=1:(360-1)
for k=1:180
J(k,j,i)=J0(k+180*j+180*360*i);
end
end
end
%你的数据被保存在了J中,如果要查看第1层数据,可以用图像画出来:
imshow(J(:,:,1));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tangtangtrav
2014-12-12 · TA获得超过610个赞
知道小有建树答主
回答量:417
采纳率:0%
帮助的人:294万
展开全部
Arrayname(:,:,1) 就行,
Arrayname(1,1,:) 第二个
追问
Arrayname(1,1,:) 读出来是:

val(:,:,1) =

-3.0849

val(:,:,2) =

2.3552

val(:,:,3) =

-4.3127

val(:,:,4) =

0.7634

val(:,:,5) =

0.5027
··········

这种格式,怎样转为只有一列数据的格式呢^_^?
追答
ArrayNewname = Arrayname(1,1,:)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
refreshbd
推荐于2018-03-04 · TA获得超过1308个赞
知道小有建树答主
回答量:504
采纳率:100%
帮助的人:328万
展开全部
就是这样b=a(1,1,1:116)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百川一归大海
2014-12-12 · TA获得超过1547个赞
知道小有建树答主
回答量:4318
采纳率:55%
帮助的人:1014万
展开全部
ArrayNewname= Arrayname(1,1,:);

ArrayNewname= ArrayNewname (:);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式