3Dマトリックスの30枚のスライスを表示します。私はMATLABスライスコマンドを使用しています。私のデータは円対称であり、重要な部分は対称軸の近くにあります。私がスライスコマンドを使用するとき、私のデータのゼロ部分は重要なデータを覚えていません。添付のコードで作成された下の図を参照してください。私は、各スライスの重要でない部分(青い領域)を完全に透明にしたいと考えています。どうやってやるの? Sueverに応じて変更後の3Dデータ行列の値に応じてスライスの一部を(MATLABスライス関数で)透明にするにはどうすればいいですか?
コードは答える:(まだ動作しません!)
問題のようです何? -Answer:私はalpha
を使用して0.5であることをスライス全体に同じアルファ値を設定するよりも、むしろ「interpの」
function presentFig4_ver3
close all; clc;
load('img3D_shrinked.mat' , 'im3' , 'y_n_mm' , 'xticksVec_mm')
[X,Y,Z]=meshgrid(y_n_mm,y_n_mm,xticksVec_mm);
slices=xticksVec_mm; %= 0.23:0.1:(0.23+((30-1)*0.1)); %This is the same as xticksVec_mm
len_slices=length(slices);
h=zeros(1,len_slices);
for ind=1:len_slices
h(ind)=slice(X,Y,Z, im3, [],[],[slices(ind)]);
set(h(ind),'EdgeColor','none','FaceColor','interp','AlphaData',(im3>0.001)*0.1);
set(gca,'ZDir','reverse')
hold on
end
end % of function
こんにちは、何らかの理由であなたの解決策は私のためには機能しません。質問の編集に自分のコードを表示します。 –
問題が見つかりました。また、FaceAlphaプロパティを 'interp'に設定する必要がありました。助けてくれてありがとう! –
@ O.T。ああ、申し訳ありません。私は最初、あなたの 'FaceColor'を' FaceAlpha'として 'interp'にセットしました。私は 'FaceAlpha'を含むように私の答えを更新しました – Suever