matlab怎样读取三维数据
比如数据a.mat,格式为<180x360x116double>我要读出<180x360x1>这一层的数据阵,该怎么写程序?我要读出<1x1x116>这一列数据,该怎么写...
比如数据a.mat,格式为<180x360x116 double>
我要读出<180x360x1>这一层的数据阵,该怎么写程序?
我要读出<1x1x116>这一列数据,该怎么写程序?
matlab小白求解答,先谢过了~ 展开
我要读出<180x360x1>这一层的数据阵,该怎么写程序?
我要读出<1x1x116>这一列数据,该怎么写程序?
matlab小白求解答,先谢过了~ 展开
5个回答
展开全部
看是什么数据格式,有的可以直接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); %三维曲面
比如这样的数据文件:
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); %三维曲面
展开全部
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));
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));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Arrayname(:,:,1) 就行,
Arrayname(1,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,:)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是这样b=a(1,1,1:116)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ArrayNewname= Arrayname(1,1,:);
ArrayNewname= ArrayNewname (:);
ArrayNewname= ArrayNewname (:);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询