0

ターゲット(1X4000)と呼ばれる1つのマトリックスがあります。列1から2000にはdouble値0が含まれ、列2001から4000にはdouble値1が含まれます

a)targets_1というマトリックスを作成し、値が0かどうかを確認してから、エントリ1を作成します。そのため、1日の終わりに:列1から2000、値1、列2001のマトリックスが必要です。値がゼロの4000

b)上記と同じ状況ですが、今回は値が1かどうかを確認してから、エントリ1を作成し、ゼロの場合はエントリをゼロにします。最後に; 私の新しいマトリックスtargets_2には値が含まれています:値がゼロの列1から2000および値1の列2001:4000

strcmp関数を使用して文字列でこのようなチェックを行う方法は知っていますが、問題は、元の行列が2倍であり、次のような関数があるかどうかわからないことです。

setosaCmp = strcmp('setosa'、species);

これはdouble(数値)で機能する可能性があります。助けていただければ幸いです

4

3 に答える 3

1
targets1 = double(targets == 0);
targets2 = targets;
于 2011-11-15T23:07:22.247 に答える
1

あなたの質問はあまり明確ではありません。次のようにあなたの説明を満足させるようです:

targets_1 = 1 - targets;
targets_2 = targets;
于 2011-11-14T00:36:45.550 に答える
0

私はあなたが言及したという事実に純粋に基づいてこの答えをしていますsetosaCmp = strcmp('setosa', species);。これから私はそれを推測しています

  1. setosaStatisticsToolboxのデモで広く使用されているFisherIrisデータセットのアイリスの一種と同様に、StatisticsToolboxがあります。
  2. クラスラベルを含む変数があり、いくつかのクラスインジケーター変数を作成したいとします(つまり、各クラスラベルの新しい変数で、アイテムがそのクラスにある場合は1、そうでない場合は0です)。

そうですか?そうでない場合は、私を無視してください。

私が正しければ、あなたが探しているコマンドはdummyvarStatisticsToolboxからのものだと思います。これを試して:

>> classLabels = [1, 2, 1, 2, 3, 1, 3];
>> dummyvar(classLabels)
ans =
 1     0     0
 0     1     0
 1     0     0
 0     1     0
 0     0     1
 1     0     0
 0     0     1
于 2011-11-14T11:51:29.237 に答える