0

我有一个称为目标(1X4000)的矩阵;第 1 到 2000 列包含双精度值 0,第 2001 到 4000 列包含双精度值 1

a)我想创建一个名为 targets_1 的矩阵,我想在其中检查值是否为 0,然后将条目设为 1,因此在一天结束时,我必须有一个矩阵,其值为 1 到 2000 列,值为 1,列 2001: 4000 值为零

b) 与上述情况相同,但这次我想检查值是否为 1,然后将条目设为 1,如果为零,则将条目设为零;在最后; 我的新矩阵 targets_2 包含值:第 1 到 2000 列,值为 0,第 2001:4000 列,值为 1

我知道如何使用 strcmp 函数对字符串进行此类检查,但问题是我的原始矩阵是双倍的,我不知道是否有这样的函数

setosaCmp = strcmp('setosa',物种);

这可以与双(数字)一起使用;任何帮助,将不胜感激

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. 您拥有 Statistics Toolbox,以及setosa在 Statistics Toolbox 演示中广泛使用的 Fisher Iris 数据集中的一种鸢尾花,以及
  2. 您有一个包含类标签的变量,并且您想构造一些类指示变量(即,为每个类标签创建一个新变量,当项目在该类中时,每个变量为 1,如果不在该类中,则为 0)。

那正确吗?如果没有,请无视我。

如果我是对的,那么我认为您要查找的命令dummyvar来自 Statistics Toolbox。尝试这个:

>> 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 回答