すべての要素 (ボクセルに対応) がゼロのサイズ 1000x1000x1000 の 3D 配列を作成し、配列内の特定の要素に 0 ではなく 2000 ~ 2001 の範囲のランダムな値を割り当て、最終的にそれをバイナリーファイル。
「coord」という名前の配列は、3D 配列でランダムな値を割り当てるために必要なポイントの Nx3 マトリックス座標 (x、y、z) です。))
座標マトリックスのすべての x、y、z 値は浮動小数点数であることに注意してください: 0<=x<=1000 0<=y<=1000 0<=z<=1000
私の目的は、3D 行列を (MATLAB の既定のバイナリ形式以外の) バイナリ形式でエクスポートして、他のプログラムで使用できるようにすることです。これまで私がやってきたことは次のとおりです。
load coord; a=coord(:,1); b=coord(:,2); c=coord(:,3); d=rand(1000,1)*2000; dd = 0:2:1000; [xq,yq,zq] = meshgrid(dd,dd,dd); vq = griddata3(a,b,c,d,xq,yq,zq,'nearest'); h=figure; plot3(a,b,c,'ro') %=========================================% fid=fopen('data.bin','w'); fwrite(fid,vq,'single'); fclose(fid);
上記のコードで、a、b、c は各ポイントの座標であり、d は目的の範囲の対応する強度値です。(meshgrid を使用して) 3D メッシュを作成し、(griddata3 を使用して) メッシュ ポイントの強度値を補間することは可能ですが、最終結果 (vq) は実際のポイント (ai、bi、ci) および対応する強度ではありません。むしろ、視覚化の目的に非常に役立つ補間されたポイントのセットです (たとえば、実際のデータに適合する 3D サーフェスを適合させたい場合)。実際のデータポイントとその強度をファイルに保存してエクスポートする方法を見つけようとしています。どんな助けでも大歓迎です。