现有的新矩阵

时间:2011-02-27 09:02:54

标签: matlab matrix

假设我有一个有两列的矩阵。每列都有数千个值。第1列的元素是正常数字。第二列的元素是0或1.为简单起见,请举例:

U = [ 25 36 12 52 32 12 14 ; 0 1 1 0 0 0 1]'

我想创建一个新的列矩阵P,使得如果U的第2列的元素是0,则P的元素与第1列中的对应元素相同。但是,如果U的第2列的元素是1,则P的元素为零。

所以,上面例子的结果是:

P = [25 0 0 52 32 12 0]'

3 个答案:

答案 0 :(得分:4)

那就是:

> P= U(:, 1).* ~U(:, 2)
P =
   25
    0
    0
   52
   32
   12
    0

答案 1 :(得分:2)

你没有告诉c#

这个答案是哪种编程语言
void process()
{
    int column_length = 10;
    int columns = 3;
    int[,] k = new int[column_length, columns];

    /*fill array
        .
        .
        .*/
    //process it
    for (int i = 0; i < k.GetLength(0); i++)
    {
        if (k[i, 1] == 1)//if this row column 0 =1
        {
            k[i, 2] = 0;
        }
        else if (k[i, 1] == 0)//if this row column 0 =0
        {
            k[i, 2] = k[i, 0];
        }
    }
}

答案 2 :(得分:0)

使用numpy,除了吃的答案,你可以使用

numpy.where(U[:,1], 0, U[:,0])