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まで変化するように、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

より良い方法はありますか?

4

1 に答える 1

0

変数を間違った方法で正規化していると思います。を使用したx軸値の現在の正規化は、各ベクトルcellfun(@(x)linspace(0,1,length(x)),Depth,'un',0);の要素間の関係を縮退させます。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);を使用して得られた正規化されたグラフは正しくなかったと確信しています。正規化されたグラフでは、マイナーな誤ったスケーリングがあまりはっきりと現れなかったため、あなたはそれを認識していませんでした。

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

于 2012-04-27T16:17:29.020 に答える