楼主: qingdanry
2037 9

[问答] R中怎么实现MATLAB里的“~=”运算呢? [推广有奖]

  • 1关注
  • 1粉丝

已卖:1份资源

大专生

91%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
99 点
帖子
41
精华
0
在线时间
75 小时
注册时间
2013-4-3
最后登录
2021-2-8

楼主
qingdanry 发表于 2015-4-16 20:21:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
对于MATLAB中的矩阵M = [1,2,0;3,40;5,6,0],取M1 = (M~=0)
就得到M1 = [1,1,0;1,1,0;1,1,0],

即意味着把非零元素取1,,0元素不变。

请教一下大家,在R里想实现它有没有直接的做法?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab Atl Lab 元素

沙发
qingdanry 发表于 2015-4-16 20:44:52
或者说在R中怎么把逻辑矩阵转换成数值矩阵?
还望高人指点!

藤椅
hugebear 发表于 2015-4-16 22:05:02
两种方法,不过似乎都不是太直接...
方法一:
  1. x <- M1 != 0
  2. x[x == TRUE] <- 1
  3. x[x == FALSE] <- 0
复制代码
方法二:
  1. x <- ifelse(M1 == 1, 1, 0)
复制代码
已有 1 人评分学术水平 热心指数 收起 理由
求证1加1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

板凳
wbx6769 在职认证  发表于 2015-4-16 22:33:41
我就试着做了一下(如下),好像要用两句
>b<-as.logical(a)
> b
[1]  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE
> c<-as.numeric(b)
> c
[1] 1 1 0 1 1 0 1 1 0

报纸
hugebear 发表于 2015-4-16 22:38:14
wbx6769 发表于 2015-4-16 22:33
我就试着做了一下(如下),好像要用两句
>b b
[1]  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FA ...
你这样做矩阵的维度信息就消失了(不能再得到矩阵)。

地板
wbx6769 在职认证  发表于 2015-4-16 22:44:18
hugebear 发表于 2015-4-16 22:38
你这样做矩阵的维度信息就消失了(不能再得到矩阵)。
嗯,我想的太简单了,以为转换下格式就行了

7
qingdanry 发表于 2015-4-17 08:32:52
hugebear 发表于 2015-4-16 22:05
两种方法,不过似乎都不是太直接...
方法一:方法二:
谢谢^_^~就用ifelse了~

8
qingdanry 发表于 2015-4-17 08:34:24
wbx6769 发表于 2015-4-16 22:44
嗯,我想的太简单了,以为转换下格式就行了
刚开始我也是想直接转的,还是hugebear兄的办法好些。 不过还是谢谢你哈^_^~

9
prunusis 发表于 2015-4-18 03:13:28
(m != 0)+0

10
qingdanry 发表于 2015-4-19 00:32:12
prunusis 发表于 2015-4-18 03:13
(m != 0)+0
妙! 确实是个思路,谢谢~~

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 06:45