1

私は今、そのようなコードを持っています:

fDeals = fopen([logsFolder stock '_deals.log']);
data = textscan(fDeals, '%f:%f:%f:%f %f,%f %f,%f %f,%f %f');
fclose(fDeals);

% hh:min:sec:millisec
secvec = [60*60 60 1 1e-3];
x = [data{1:4}] * secvec';

flvec = [1 1e-16];
y = [data{5:6}] * flvec';

ammount = data{11};

xindays = x / (24*60*60);

plot(xindays, y, 'go','MarkerSize',6,'LineWidth',3);

正常に動作しますが、常に緑色のマーカーが作成されます。量 > 0 の場合は緑のマーカーを作成する必要があります。それ以外の場合は、赤のマーカーを作成します。どうやってするか?

おそらく、別々xGreenの , xRed,yGreen配列を作成するyRed必要がありますが、ファイル行を何らかの方法で 2 つのグループに分ける必要があります。

4

2 に答える 2

2

これを試すことができます:

markerIDX = ammount > 0;

plot(xindays(markerIDX), y(markerIDX), 'go','MarkerSize',6,'LineWidth',3);
plot(xindays(~markerIDX), y(~markerIDX), 'ro','MarkerSize',6,'LineWidth',3);

ただし、これはxindaysy、およびammountが同じサイズの場合にのみ機能することに注意してください。

于 2012-07-28T12:06:33.610 に答える
1

Statistics Toolbox のGSCATTER関数を使用することもできます。

group = ammount > 0;
h = gscatter(xindays, y, group, 'gr', 'o', 6);
set(h, 'LineWidth',3)
legend(h, {'group 1','group 2'})
于 2012-07-29T01:07:31.130 に答える