我有一个叫做目标的矩阵(1X4000);第1列到第2000列包含双精度值0,列2001到4000包含双精度值1
A) 我想创建一个名为targets_1的矩阵,其中我想检查值是否为0然后使条目1,所以在一天结束时我必须有一个矩阵:第1列到第2000列,值为1,列2001:4000,零值
b)中 与上面相同的情况,但这次我想检查值是否为1然后使条目1,如果它是零,则使条目为零;在末尾;我的新矩阵targets_2包含值:列1到2000,值为零,列2001:4000,值为1
我知道如何使用strcmp函数用字符串进行这样的检查,但问题是我的原始矩阵是双倍的,我不知道是否有像
这样的函数setosaCmp = strcmp('setosa',species);
可以使用double(数字);任何帮助将不胜感激
答案 0 :(得分:1)
你的问题不是很清楚。听起来以下内容可以满足您的描述:
targets_1 = 1 - targets;
targets_2 = targets;
答案 1 :(得分:1)
targets1 = double(targets == 0);
targets2 = targets;
答案 2 :(得分:0)
我的答案纯粹基于你提到setosaCmp = strcmp('setosa', species);
的事实。从此我猜测
setosa
是一种来自Fisher Iris数据集的虹膜,广泛用于统计工具箱演示,是吗?如果没有,请不理我。
如果我是对的,那么我认为您正在寻找的命令是来自Statistics Toolbox的dummyvar
。试试这个:
>> 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