我有一個ASCII文件,其中包含許多在地震解釋軟件中創建的曲面。它們是頂部表面和底部表面之間的一系列插值曲面。族是所有曲面都在常規的網格中的每個點進行採樣。 文件結構爲: X Y Z1 Z2 ..... Zn 其中X,Y是所有表面共有的座標向量,Z1,Z2,...,Zn是表面。 我想在Matlab中導入文件並將每個單獨的曲面保存到它自己的文件XYZ中。在Matlab中矢量化代碼
假設數據導入並存儲在變量「數據」,這個代碼的工作:
r=size(data,1);
c=size(data,2)-2;
temp(:,1)=data(:,1);
temp(:,2)=data(:,2);
for i = 1:c
temp(:,3)=data(:,i+2);
tempname = ['proportional_',num2str(i*5-5),'ms','.txt']; % naming reflects the
% fact that surfaces
% are in two way travel
% time and that median
% distance between each
% two surfaces is ~ 5
% milliseconds
save (tempname,'temp','-ASCII','-TABS');
end
clear r c temp tempname i
clc
我想通過採取儘可能多的它可能出來的for循環向量化的代碼。我認爲這樣做的保存命令可能是不可能的,但也許其他兩條線可以。我的感覺是我應該使用單元陣列或者結構,但我想不出正確的語法。 任何想法?謝謝
如果你有一個ND數組,'data'的格式:'XY Z1 Z2 ...'做它的零墊'X'和'Z''將始終有'numel(X)* numel(Y)'值? – macduff 2012-02-21 21:07:57
我不確定我是否理解這個問題。數據是一個二維數組,其中每個X,Y,Z1,...,Zn是一列 – MyCarta 2012-02-21 23:29:15