吾爱光设

 找回密码
 注册
会员须知
会员须知
实用帮助
实用帮助
查看: 3670|回复: 6

关于MATLAB中冒号对矩阵的处理

[复制链接]
  • TA的每日心情
    开心
    2024-10-24 00:54
  • 签到天数: 156 天

    [LV.7]常住居民III

    29

    主题

    45

    回帖

    2

    积分

    小白

    积分
    2
    发表于 2023-4-7 17:02 | 显示全部楼层 |阅读模式
    老哥们好,
          《高等光学仿真》例1.12描述了对一组向量进行归一化的方法
    >> v = [1,2,3; 4,5,6];
    >> vmax = sqrt(sum(v.^2))

    vmax =

        4.1231    5.3852    6.7082

    >> v = v./vmax(ones(1,size(v,1)),

    v =

        0.2425    0.3714    0.4472
        0.9701    0.9285    0.8944


    但是我对其中vmax(ones(1,size(v,1)),这一句非常疑惑,主要就是里面这个ones,
    平时不都是冒号配合实数表示该矩阵的几列或者几行,但是他这里怎么直接放了个矩阵呢?
    主要是例子里写的确实是对的,求老哥们解惑。。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-11-24 16:52
  • 签到天数: 632 天

    [LV.9]以坛为家II

    45

    主题

    339

    回帖

    20

    积分

    新手

    积分
    20
    发表于 2023-4-7 20:17 | 显示全部楼层
    生成1行size列的元素全为1矩阵,SIZE干嘛的自己搜
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情

    2024-11-20 18:33
  • 签到天数: 697 天

    [LV.9]以坛为家II

    9

    主题

    122

    回帖

    13

    积分

    小白

    积分
    13
    发表于 2023-4-8 09:05 | 显示全部楼层
    matlab 的help 命令非常好用   。 不会的用法在命令行那里 help [指令]  就好。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-11-22 08:56
  • 签到天数: 304 天

    [LV.8]以坛为家I

    8

    主题

    28

    回帖

    4

    积分

    小白

    积分
    4
    发表于 2023-4-8 10:50 | 显示全部楼层
    矩阵里面嵌套矩阵,里面的矩阵作为索引,且matlab矩阵里的索引是从左上角开始 从上到下排序的。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2023-10-4 11:49
  • 签到天数: 176 天

    [LV.7]常住居民III

    7

    主题

    29

    回帖

    0

    积分

    小白

    积分
    0
    发表于 2023-4-10 09:45 | 显示全部楼层
    我刚刚试了下你的例子,我也有个疑问:
    你的例子中的需求是向量进行归一化,那么按照矩阵归一化的方法,只需要矩阵每一列的值,除以每一列所有元素平方和的绝对值即可,也就是说vmax(ones(1,size(v,1))这个分母应该等价于[4.1231    5.3852    6.7082;4.1231    5.3852    6.7082]或者直接[4.1231    5.3852    6.7082]。这样和v相除后就可以得到结果。但你的例子中用了ones,并且ones(1,size(v,1)的意思是建立一个元素全都是1的1行2列矩阵,也就是说vmax(ones(1,size(v,1))是[4.1231,4.1231]。这在我这边是得不到结果的,不知道我哪里错了,还请各位指点一下。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-24 00:54
  • 签到天数: 156 天

    [LV.7]常住居民III

    29

    主题

    45

    回帖

    2

    积分

    小白

    积分
    2
     楼主| 发表于 2023-4-12 10:54 | 显示全部楼层
    ty133723 发表于 2023-4-10 09:45
    我刚刚试了下你的例子,我也有个疑问:
    你的例子中的需求是向量进行归一化,那么按照矩阵归一化的方法,只 ...

    >> v=[1,2,3; 4,5,6];
    >> vmax = sqrt(sum(v.^2));
    >> v = v./vmax(ones(1, size(v,1)), : )
    他这个代码是这样的,发帖子的时候冒号连着右括号变成笑脸了,你粘贴再试一下

    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2023-10-4 11:49
  • 签到天数: 176 天

    [LV.7]常住居民III

    7

    主题

    29

    回帖

    0

    积分

    小白

    积分
    0
    发表于 2023-4-12 17:47 | 显示全部楼层
    KEVINX1 发表于 2023-4-12 10:54
    >> v=[1,2,3; 4,5,6];
    >> vmax = sqrt(sum(v.^2));
    >> v = v./vmax(ones(1, size(v,1)), : )

    那就说得通了,vmax(ones(1,size(v,1)),就是我前面说的[4.1231,5.3852,6.7092;4.1231,5.3852,6.7092],只是表达方式采用了例子中的这种。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

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

    本版积分规则

    联系我们|本论坛只支持PC端注册|手机版|小黑屋|吾爱光设 ( 粤ICP备15067533号 )

    GMT+8, 2024-11-24 20:24 , Processed in 0.125000 second(s), 21 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表