matlab a = [1 2 3; 4 5 6; 7 8 9]; b=a>5
matlab a = [1 2 3; 4 5 6; 7 8 9]; b=a>5如果这样运行>> a(b)=sqrt(a(b))a =1.0000 2.0000 3.00004.0000 5.0000 2.44952.6458 2.8284 3.0000我将左右两个单独运行>> a(b)ans =7869>> sqrt(a(b))ans =2.64582.82842.44953.0000请问第一个表达式为什么得出的是一个3*3的数组 而不是像下边一样的结果
最佳回答
第一种算法很容易理解 开方也是对a矩阵中的逻辑索引项进行开方,然后把开方后的值赋给对应的a矩阵中逻辑索引项,返回的是 a矩阵
第二种算法关键在于 a(b) 返回的是一个 索引后的列矩阵,对该矩阵开方就返回一个列矩阵
具体看这里:
再问: 还是有点不明白 请问 sqrt(a(b))的结果是列矩阵,a(b)也是一个列矩阵,最后赋值结果为什么不是一个列矩阵呢
再答: sqrt(a(b)),a(b)都是列矩阵,赋值的时候,也是一一对应的,这你明白吧 但是你看,它最后结果是 a = 1。0000 2。0000 3。0000 4。0000 5。0000 2。4495 2。6458 2。8284 3。0000 所以 最后返回的是a 不是a(b) 如果像c语言那样理解的话,赋值语句的值确实应该是 a(b) 但是我想这就是matlab的特点吧,具体为什么也不知道,但这也不影响理解和使用吧
第二种算法关键在于 a(b) 返回的是一个 索引后的列矩阵,对该矩阵开方就返回一个列矩阵
具体看这里:
再问: 还是有点不明白 请问 sqrt(a(b))的结果是列矩阵,a(b)也是一个列矩阵,最后赋值结果为什么不是一个列矩阵呢
再答: sqrt(a(b)),a(b)都是列矩阵,赋值的时候,也是一一对应的,这你明白吧 但是你看,它最后结果是 a = 1。0000 2。0000 3。0000 4。0000 5。0000 2。4495 2。6458 2。8284 3。0000 所以 最后返回的是a 不是a(b) 如果像c语言那样理解的话,赋值语句的值确实应该是 a(b) 但是我想这就是matlab的特点吧,具体为什么也不知道,但这也不影响理解和使用吧
最新回答共有2条回答
-
2026-04-04 21:08:52昏睡的冬日
回复第一种算法很容易理解 开方也是对a矩阵中的逻辑索引项进行开方,然后把开方后的值赋给对应的a矩阵中逻辑索引项,返回的是 a矩阵第二种算法关键在于 a(b) 返回的是一个 索引后的列矩阵,对该矩阵开方就返回一个列矩阵具体看这里: 再问: 还是有点不明白 请问 sqrt(a(b))的结果是列矩阵,a(b)也是一个列矩阵,最后赋值结果为什么不是一个列矩阵呢 再答: sqrt(a(b)),a(b)都是列矩阵,赋值的时候,也是一一对应的,这你明白吧 但是你看,它最后结果是 a = 1。0000 2。0000 3。0000 4。0000 5。0000 2。4495 2。6458 2。8284 3。0000 所以 最后返回的是a 不是a(b) 如果像c语言那样理解的话,赋值语句的值确实应该是 a(b) 但是我想这就是matlab的特点吧,具体为什么也不知道,但这也不影响理解和使用吧
热门文章
- 康达学院专转本五年制
- 高考一个考场分ab卷吗
- not only but also用法
- 某物体做自由落体运动,从释放开始计时,则物体在前2s内的平均速度为______m/s,物体下落2m时的速度大小为______m/s.
- 三角函数公式大全表格
- 地理中考必背知识点2022
- 2013-2014学年小学六年级科学上学期期末考试试卷及答案
- 人教版2014-2015学年小学五年级英语第二学期期中教学质量检测试卷及答案
- 【Linux驱动开发】设备树详解(二)设备树语法详解
- 别跟客户扯细节
- 在别的城市买房子能落户吗
- 卖房前要把装修贷还完吗
- 高中政治教学提高教学效果的方法探究
- “互联网+”背景下的初中英语课堂教学改革与创新策略研究
- 2022年终止合同范本
- 租房合同范本范文
- 如何挑选土豆
- 如何挑选土鸡
![matlab a = [1 2 3; 4 5 6; 7 8 9]; b=a>5_知道](http://www.mshxw.com/skin/sinaskin/know/picture/logo.png)