我需要在matlab中帮助数字比较

时间:2011-11-14 00:34:15

标签: matlab matlab-figure

我有一个叫做目标的矩阵(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(数字);任何帮助将不胜感激

3 个答案:

答案 0 :(得分:1)

你的问题不是很清楚。听起来以下内容可以满足您的描述:

targets_1 = 1 - targets;
targets_2 = targets;

答案 1 :(得分:1)

targets1 = double(targets == 0);
targets2 = targets;

答案 2 :(得分:0)

我的答案纯粹基于你提到setosaCmp = strcmp('setosa', species);的事实。从此我猜测

  1. 您有统计工具箱,因为setosa是一种来自Fisher Iris数据集的虹膜,广泛用于统计工具箱演示,
  2. 你有一个包含类标签的变量,你想构建一些类指示符变量(即每个类标签的一个新变量,当该项在该类中时,每个变量为1,当它不是时,每个变量为0) )。
  3. 是吗?如果没有,请不理我。

    如果我是对的,那么我认为您正在寻找的命令是来自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