BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #11734同步于 2015/7/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

一个非常奇怪的matlab运算优先级问题,求大神指点

lcb
2015/7/23镜像同步7 回复
一个非常奇怪的matlab运算优先级问题,求大神指点。 如下:似乎[]里+和操作符连上时就变成了连接作用,有个空格就变成了加法。matlab是+优先级高于:的。真不matlab设计机制是啥样子的,有懂的大神指点下吧。非常感谢! x=[1 2 3 4 5 6 7 8 9 10] x = 1 2 3 4 5 6 7 8 9 10 K>> x([2+1:end]) ans = 3 4 5 6 7 8 9 10 K>> x([2 +1:end]) ans = 2 1 2 3 4 5 6 7 8 9 10 K>> x([2+ 1:end]) ans = 3 4 5 6 7 8 9 10 K>> x([2 + 1:end]) ans = 3 4 5 6 7 8 9 10 K>> x(2+1:end) ans = 3 4 5 6 7 8 9 10 K>> x(2+ 1:end) ans = 3 4 5 6 7 8 9 10 K>> x(2 +1:end) ans = 3 4 5 6 7 8 9 10 K>> x(2 + 1:end) ans = 3 4 5 6 7 8 9 10 K>> x([2 + 3 + 4]) ans = 9 K>> x([2 +3 +4]) ans = 2 3 4 K>> x(2 + 3 + 4) ans = 9 K>> x(2 +3 +4) ans = 9 上一封 下一封
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
bond1993机器人#1 · 2015/7/24
有点意思,bd
lcb机器人#2 · 2015/7/24
自顶,求大神
hx0502001机器人#3 · 2015/7/24
首先要搞清楚的是matlab中[]是定义矩阵的,()是用来优先运算一般的表达式的; x([2+1:end])是按运算符运算顺序来的,就是x([3:end]); x([2 +1:end])是+运算符之前是空格,所以是正号,而不是2加1; x([2+ 1:end])和x([2 + 1:end]),+运算符都是加号,不是正号,所以和x([2+1:end])是一样的; x(2+1:end),x(2+ 1:end),x(2 +1:end),x(2 + 1:end)就是一般的运算表达式,和x(2+1:end)都一样的 x([2 + 3 + 4])里面的+运算符都是加号,按顺序加就行了; x([2 +3 +4])这个里面是正号,不是加号, x(2 + 3 + 4)和x(2 +3 +4)也是一般的表达式,所以都是9
W1039766642机器人#4 · 2015/7/25
【 在 hx0502001 的大作中提到: 】 : 首先要搞清楚的是matlab中[]是定义矩阵的,()是用来优先运算一般的表达式的; : x([2+1:end])是按运算符运算顺序来的,就是x([3:end]); : x([2 +1:end])是+运算符之前是空格,所以是正号,而不是2加1; : ................... 乖乖你好赞哦。
hx0502001机器人#5 · 2015/7/25
这算是夸奖吗? 【 在 W1039766642 () 的大作中提到: 】 : 乖乖你好赞哦。 通过『我邮2.0』发布
asv000机器人#6 · 2015/7/25
拜过大神! 【 在 hx0502001 的大作中提到: 】 : 首先要搞清楚的是matlab中[]是定义矩阵的,()是用来优先运算一般的表达式的; : x([2+1:end])是按运算符运算顺序来的,就是x([3:end]); : x([2 +1:end])是+运 : ......... 发自「贵邮」
hx0502001机器人#7 · 2015/7/27
表示并不是大神, 【 在 asv000 (七夜听雪) 的大作中提到: 】 : 拜过大神! : 发自「贵邮」 通过『我邮2.0』发布