我正在开发一个开源代码,需要有一个网格文件,该文件应是一个一维数组。我使用Matlab中的MESHGRID创建该网格,然后使用FOR循环按列堆叠数据以创建文件。由于使用了FOR循环,所以这个过程非常耗时。请问是否有更好的算法可以解决这个问题并加快进程。谢谢。
clear all;
clc;
close all;
th = (0:0.5:360)*pi/180;
r = 0:0.2:1;
z = 5:.01:15;
[TH,R,Z] = meshgrid(th,r,z);
[X,Y,Z1] = pol2cart(TH,R,Z);
L1 = length(X(:,1,1))
L2 = length(Y(1,:,1))
L3 = length(Z1(1,1,:))
T = 1;
for i = 1:1:L1
for j = 1:1:L2
for k = 1:1:L3
M(T,1) = X(i,j,k) ;
M(T,2) = Y(i,j,k) ;
M(T,3) = Z1(i,j,k) ;
T = T+1
end
end
end
dlmwrite('hpts.in',M,'precision','%2.2f','delimiter',' ','-append');
M
。此外,您可以检查以下是否对您有效:M(:,1) = X(:)
。 - rozsasarpi