• matlab中冒号的用法


    matlab冒号的用法

    对于A(四行五列)矩阵,A(2:3,1:2:5)是什么意思?

    问题补充:能解释下为什么是一,三,五列

    满意回答

    显示A的第二行与第三行的第一、三、五列。因为矩阵后面如果是圆括号,那么都表示引用,即矩阵元素的位置,下面是例子

    A =

         1     2     3     4     5

         4     5     6     7     8

         0     1     4     7     8

         0     2     5     8     7

    disp(A(2:3,1:2:5)) %3个数字夹着2个冒号的意思:从num1到num3 步长num2

     4     6     8

     0     4     8 

    补充问题:能解释下为什么是一,三,五列

    MATLAB定义矩阵的一种方法是A=s:d:f,s表示起始,d表示增量,f表示终点,1:2:5即为1,1+2=3,3+2=5,不难理解吧,是MATLAB定义矩阵最常用的方法

    请问matlabA(k,:) 中的冒号什么意思?

    A(k,:)冒号是取出第k行的数据,比如

    A =

         1     2

         3     4

         5     6

    >> A(1,:)

    ans =

         1     2

    >>

    请高手指教:matlab中 循环语句中X(8,:,i)里的冒号是什么意思??

    答:冒号MATLAB里基本上两种意思:

    1)对于矩阵,冒号表示该维度上的所有元素。

    A=

    1 2 3

    4 5 6

    7 8 9

    A(1,:)表示A的第一行,所有列。

    A(1,:)=[ 1 2 3 ]

    (2)在循环语句中,冒号表示从什么开始,间隔多少,到什么

    for i=0 : 2 :10

    表示的是i0开始,每次增长2,一直到10,所以循环的第一次i=0,第二次循环i=2,...6i10,循环结束。相当于C语言中的for (i=0;i<=10;i=i+2)

    追问

    首先感谢您的回答,我也从您说的第二点考虑过。可我还是不太明白这里冒号的位置刚好是在“间隔量”的位置上。。。。是代表什么意思呢??

    i 是之前已经定好的循环步数。x也是定义好的0矩阵,x=zeros(17,1,samples)

    for i=2:1:samples

    ....

    v=v(i)+(x(8,:,i)*v(i));

    难道说是代表任何步长??

    回答

    不是的。这里的冒号是我说的第一个意思。

    现在你的x是一个三维矩阵,你可以理解为x是一个长方体,长宽高分别是17,1,sample,然后每个1*1*1的小立方体里面,存放着矩阵的一个元素。见图。

    那x(8,:,i)就是取出这个长方体的长里面的第8小格,宽里面的所有小格,高里面的第i小格所对应的那些元素。而由于你的宽里面总共就只有1。所以此处不是“那些元素”而是“那个元素”,只有1个!

    可想而知,如果宽的总数不是1,那么取出的将是这个长方体的一个细长条,往里延伸的,想象一下.

    ************************************

    冒号的两种用法其实很好区分,写在for里面,就是第二种意义,表现为“用冒号隔开数字”。

    写在矩阵的括号里面,就是第一种意义,表现为“把冒号当数字使用,用逗号隔开数字(或冒号)”。

    i=uint8(zeros(X,Y,3));MATLAB语句解析

    提问者:freeciny| 悬赏分:10 | 浏览次数:1271次

    [X,Y]=size(temp);

      i=uint8(zeros(X,Y,3));

      i(:,:,1)=uint8(temp);

      i(:,:,2)=uint8(temp);

      i(:,:,3)=uint8(temp);

    满意回答

    这句看起来像是读图像的RGB

    [X,Y]=size(temp); 读temp的大小(行数和列数)

      i=uint8(zeros(X,Y,3)); 构造一个三维矩阵

      i(:,:,1)=uint8(temp);uint8将类型转换为无符号8位数,即256位。与256色一致。

      i(:,:,2)=uint8(temp);

      i(:,:,3)=uint8(temp); 

    楼上的,人家那三行是赋操作。你初始化成0不赋也没用啊。

    matlab中的语句2.^x中的点是什么作用?

    答:

    x.^2点乘表示x中的各个元素平方

    x^2表示x向量乘x向量,是个矩阵

    2.^x2^x答案应该是一样的

    标明:x为数组

    举个例子:

    A=[1 2 3];

    B=2.^A

    ans

     2 4 8

    不加“。”运算不成立

    matlab以矩阵作为基本计算单位,因此用普通运算符号(+-*/^连接两个量时要注意矩阵的运算规则。如2^x,表示两个矩阵作乘方运算就要求一个为标量,一个为方阵。而普通运算号前加了“.”就表示两个矩阵对应的元素间进行普通运算,而不考虑矩阵的运算规则,当然两个矩阵的尺寸要一致,如果其中一个为标量似乎就不存在这个问题

    .^”这个叫做点乘。是分别乘以矩阵里面元素的意思。这样得出的结果也是一个矩阵

  • 相关阅读:
    Hbase 命令小结
    shell while内获取外部变量内容
    Idea的live template参数中的预定义功能
    Adobe Illustrator里使用fontawesome矢量图标
    五笔结构与识别码
    致第一次安装RIME的你
    sublime Text Pastry使用
    PHOTOSHOP CC 2015插件安装方法
    搭建自己的OpenWrt开发环境
    【OpenWRT】 Chaos Calmer 15.05 编译
  • 原文地址:https://www.cnblogs.com/snowxshy/p/3792970.html
Copyright © 2020-2023  润新知