2012-04-27 16 views
0
clear all 
depth1 = [0;2;3;4;5;6;8;10;12;14;16;18]; 
depth2 = [0;2;3;4;5;6;7;8;9;10;11;12]; 
depth3 = [0;4;6;8;10;12;14;16;18;20;22;24]; 
Depth = {depth1,depth2,depth3}; 

data1 = [0.8,0.797,0.796,0.795,0.795,0.795,0.797,0.798,0.8,0.802,0.803,0.802]; 
data2 = [0.764,0.752,0.743,0.745,0.746,0.736,0.710,0.656,0.584,0.574,0.577,0.601]; 
data3 = [0.760,0.750,0.745,0.714,0.593,0.354,0.257,0.272,0.295,0.327,0.368,0.379]; 
Data = {data1;data2;data3}'; 

coloring = {[0 0 0],[1 0 0],[0 0 1]}'; 
marking = {'+','o','s'}; 

for i = 1:length(Depth); 
    fh = figure(1); 
    plot(Depth{i},Data{i},'color',coloring{i},'Marker',marking{i});hold on; 
    legend; 
    set(fh,'color','white'); 
    set(gca,'TickLength',[.01 .01],'TickDir','out','box','on','XMinorTick','on',... 
     'YMinorTick','on','FontName','Helvetica','FontSize', 14,... 
     'Fontweight','demi','XColor','k','YColor','k');  
end 

この例では、3つの異なる変数が異なる深度で測定されたプロットを示しています。ここで、各測定の深さは異なります。表示される範囲が最小と最大の深度をそれぞれ表す0から1まで変化するようにxaxisを変更することが可能かどうか疑問に思っています。これは可能ですか?プロット内のx軸の範囲を変更

私が使用している現在の方法は次のとおりです。

newDepth = cellfun(@(x)linspace(0,1,length(x)),Depth,'un',0); 

し、この新しい深さベクトルに対してデータをプロットします。

for i = 1:length(Depth); 
    fh = figure(1); 
    plot(newDepth{i},Data{i},'color',coloring{i},'Marker',marking{i});hold on; 
    legend; 
    set(fh,'color','white'); 
    set(gca,'TickLength',[.01 .01],'TickDir','out','box','on','XMinorTick','on',... 
     'YMinorTick','on','FontName','Helvetica','FontSize', 14,... 
     'Fontweight','demi','XColor','k','YColor','k');  
end 

もっと良い方法はありますか?

答えて

0

私は変数を間違った方法で正規化していると思います。 cellfun(@(x)linspace(0,1,length(x)),Depth,'un',0);を使用するx軸値の現在の正規化は、各depthベクトルの要素間の関係を縮退させる。私が考える、正しい方法でなり、

newDepth = cellfun(@(x)(((x)-(min(x)))'./((max(x))-(min(x)))'),Depth,'un',0); 

このように、非正規化depthsの異なる要素間の相対的な間隔は同様に正規化された値に保存されています。これを使用して、私に知らせてください。私はnewDepth = cellfun(@(x)linspace(0,1,length(x)),Depth,'un',0);を使って得られた正規化されたグラフが間違っていると確信しています。軽度の間違ったスケーリングは、正規化されたグラフで非常に厳密に現れなかったので、あなたはそれを認識しませんでした。

グラフをループでプロットする方法は、現時点では問題ありません。正確に何が間違っていると思いますか?

+0

は素晴らしいです。すべてが今は大丈夫です。ご協力いただきありがとうございます。 – Emma

関連する問題