如何在r中使用两个向量和逻辑运算符形成逻辑“ 1”和“ 0”的矩阵?

时间:2019-04-29 19:14:48

标签: r matlab

这里是Matlab代码,用于形成逻辑值“ 0”和“ 1”的矩阵

addCustomDataToJsonMap

导致

<?php

    $ussdRequest = json_decode(@file_get_contents('php://input'));

       header("Content-Type: application/json; charset=UTF-8");

       $ussdResponse = new stdclass;

       if ($ussdRequest != NULL)

          switch ($ussdRequest->Type) {

            case 'Initiation':
                   $ussdResponse->Message =  'Enter your full name: ';
                   $ussdResponse->Type = 'Response';
               $msg = $ussdResponse->Message;
                  break;

                 case 'Response':

                switch ($ussdRequest->Sequence) {

                     case 2:
                          $ussdResponse->Message = 'The message is: '+ $msg;
                             break;
                           }

              }

        echo json_encode($ussdResponse);

?>

如何在r中执行相同的任务,尤其是 A=[1 2 3 4 5 6 7 8 9 10 ]; N = numel(A); step = 2; % Set this to however many zeros you want to add each column index = N:-step:1; val = (1:N+step).' <= index; 这一步?

1 个答案:

答案 0 :(得分:2)

一个选项是

i <- seq_len(ncol(m1))
sapply(rev(i), function(.i) {
         m1[,.i][sequence(.i *2)] <- 1
         m1[,.i]
   })
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    1    1    1    1    1
# [2,]    1    1    1    1    1
# [3,]    1    1    1    1    0
# [4,]    1    1    1    1    0
# [5,]    1    1    1    0    0
# [6,]    1    1    1    0    0
# [7,]    1    1    0    0    0
# [8,]    1    1    0    0    0
# [9,]    1    0    0    0    0
#[10,]    1    0    0    0    0
#[11,]    0    0    0    0    0
#[12,]    0    0    0    0    0

或向量化

i1 <- rep(i,  rev(2*i))
m1[cbind(ave(i1, i1, FUN = seq_along), i1)] <- 1
m1
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    1    1    1    1    1
# [2,]    1    1    1    1    1
# [3,]    1    1    1    1    0
# [4,]    1    1    1    1    0
# [5,]    1    1    1    0    0
# [6,]    1    1    1    0    0
# [7,]    1    1    0    0    0
# [8,]    1    1    0    0    0
# [9,]    1    0    0    0    0
#[10,]    1    0    0    0    0
#[11,]    0    0    0    0    0
#[12,]    0    0    0    0    0

或者另一个无需事先创建matrix的选项

n <- 5
i1 <- seq(10, 2, by = -2)
r1 <- c(rbind(i1, rev(i1)))
matrix(rep(rep(c(1, 0), n), r1), ncol = n)
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    1    1    1    1    1
# [2,]    1    1    1    1    1
# [3,]    1    1    1    1    0
# [4,]    1    1    1    1    0
# [5,]    1    1    1    0    0
# [6,]    1    1    1    0    0
# [7,]    1    1    0    0    0
# [8,]    1    1    0    0    0
# [9,]    1    0    0    0    0
#[10,]    1    0    0    0    0
#[11,]    0    0    0    0    0
#[12,]    0    0    0    0    0

数据

m1 <- matrix(0, 12, 5)