0

数値を含む行列M(x x 5) と構造体が与えられた場合thr、ループなしで次の手順を実行するにはどうすればよいですか?

2構造での使用structfunはできません。my structurearrayfunに割り当てることはできませんindex。またcellfun、正しいものではありません。誰でも助けてくれますか?

前もって感謝します!

index.b = M(:,1) >= thr.b;
index.c = M(:,2) >= thr.c;
index.h = M(:,3) >= thr.h;
index.r = M(:,4) >= thr.r;
index.s = M(:,5) >= thr.s;
4

1 に答える 1

0

ここにあるようにデータ構造を維持する必要がある場合は、解決策があります。

まず、ダミー入力を作成しましょう。

M = rand(5);
index = struct('b',[],'c',[],'h',[],'r',[],'s',[]);
thr = struct('b',.5,'c',.5,'h',.5,'r',.5,'s',.5);

これが実際のトリックです:

A = bsxfun(@ge, M, [thr.b, thr.c, thr.h, thr.r, thr.s]);
A = num2cell(A,1);
[index.b, index.c, index.h, index.r, index.s] = deal(A{:});

繰り返しますが、適切なデータ構造を使用して、より効率的な方法でこれを行うことができます。お役に立てれば。

于 2013-03-08T15:31:17.330 に答える