0

D98 行 2 列のテキスト ファイルがあります。次のようになります。

10 0.261344
11 0.456167
12 0.668595
2 0.481754
...など

M17 行 2 列の別の Excel ファイルがあります。
最初の行からすべての行の値を減算し、次に 2 などから減算したいので、次のような結果が得られます。

10-11 -0.194823
10-12 -0.407251
...など

つまり、1 行目とすべての残り、2 行目とすべての残りの違い..1 列目が 2 番目の M Excel ファイルの 1 列目と同じ値を持つ行を除きます。これにより、81行と比較して合計の違いが生じます。

私はこれを使用しようとしています:

M = xlsread('...');    

FSumID=fopen(D);
 MatrixSub = loadD);
 m = textscan(FSumID,'%d %f');
horzcat(m{:}) 

NewData = M(:,1)
D_size=size(D);

for i=1:D_size

 if (ptvBodyDist(:,1)~=NewData(i))
%for calculating 
 DVec = bsxfun(@minus, ((m{i,2})), (m{i,2}));

%これをチェックすると、(((98-17)^2,1)が必要な間、1つのループのみがすべてゼロ(98,1)になります。式の最後の部分を変更して、必要なものを取得する必要がありますが、私は' m bsxfun で立ち往生.すべての行を減算する正しい式を作成する方法がわかりません。

私はMatlabの初心者です。どんな助けでも大歓迎です。また、mathworks のヘルプとは別に、いくつかのマニュアルやチュートリアルを提案できれば. どうもありがとう。

4

1 に答える 1

1

マトリックス(テキストファイルからのデータ)でしましょうD。マトリックス(Excelファイルからのデータ)でみましょう 。n2
Mm2

最初の段階は、を使用して、最初の値が表示されない行の関連するn-m行を見つけることです。DMsetdiff

[~, idx] = setdiff( D( :, 1 ), M( :, 1 ), 'stable' );

これで、all-vs-alldiffを使用して計算できます。bsxfun

d = bsxfun( @minus, permute( D( idx, : ), [1 3 2] ), ...
                    permute( D( idx, : ), [3 1 2] ) );

dは| idx| x | idx|x2配列ここで

d( ii, jj, : ) = D( idx(ii), :) - D( idx(jj), : )
于 2013-02-11T14:14:16.810 に答える