私は、さまざまな実験条件のために、共通のX変数(XThompsons)ではなく、さまざまなY変数(YCounts)を持つ異なる計測器からの2組のデータを持っています。データは、以下の例のようになります。テーブル行の値をペアで削除するにはどうすればよいですか?たとえば、いずれかの列が0.01未満の場合、行を削除するにはどうすればよいですか?
[Table1]
XThompsons | YCounts (1) | YCounts (2) | YCounts (3) | .... | ....
------------------------------------------------------------------
[Table2]
XThompsons | YCounts (1) | YCounts (2) | YCounts (3) | .... | ....
------------------------------------------------------------------
私はこのようなもので、2つのデータセットを持っているとき、私は表1から単一Y-の列情報を取得し、すべてのY-の列にいくつかの計算を行うためのスクリプトを書かれています表2に示す。しかし、2つの表の列を比較するとき、いずれかの列に特定のしきい値(0.10)の値がある場合は、その値を削除します。例では、私は列のいずれかが、私はMatlabのでこれを実行するにはどうすればよい0.10以下
XThompsons | Table1.YCounts(1) | Table2.YCounts(2)
--------------------------------------------------
1 1.00 0.50
2 0.22 0.12
3 0.29 0.14
4 0.29 0.09 (delete row)
5 0.11 0.49
6 0.02 0.83 (delete row)
を含む値を持っているので、行4行と6を削除したいの下に?私の現在のコードは以下の通りです。私は最初に各テーブル行を配列に変換します。どうすればY < 0.10行を削除すればいいのですか?
datax = readtable('table1.xls'); % Instrument 1
datay = readtable('table2.xls'); % Instrument 2
SIDATA = [];
for idx=2:width(datay);
% Read the indexed column of datax (instrument 1) then normalize to 1
x = table2array(datax(:,idx));
x = x ./ max(x);
% Read indexed column of datay (instrument 2) and carry out loop
for idy=2:width(datay);
% Normalize y data to 1
y = table2array(datay(:,idy));
y = y ./ max(y);
% Calculate similarity index (SI) at using the datax index for all collision energies for datay
xynum = sum(sqrt(x) .* sqrt(y));
xyden = sqrt(sum(x) .* sum(y));
SIDATA(idy,idx) = (xynum/xyden);
end
end
助けていただければ幸いです。 ありがとう!
'DATAX = DATAX *(DATAX> 0.1);'この意志の要素ごとの乗算 'そのdatax''全ての真理値表によってdatax'は0.1よりも大きいので、何0.1未満の意志によって0を掛けて0になります。これがうまくいくなら私に知らせてください –