Matlab 在不同的集合位置获取矩阵中的数字

Matlab 在不同的集合位置获取矩阵中的数字,matlab,Matlab,我有一个带有数字的矩阵1x5000。现在我感兴趣的是从不同位置的矩阵中获取值,更准确地说是在矩阵的六个不同位置。位置应以长度为基础,以下是我想公布的数字: 矩阵长度的1/6中的数字 矩阵长度的2/6中的数字 矩阵长度的3/6中的数字 矩阵长度的4/6中的数字 矩阵长度的5/6中的数字 矩阵长度的6/6中的数字 这些值可以打印在另一个矩阵中,所以假设矩阵是“代码>1x5000”/代码>,3/6将在矩阵的中间给出数字。我是Matlab新手,因此非常感谢您的帮助 MATLAB中的冒号表示法提供了一种从

我有一个带有数字的矩阵
1x5000
。现在我感兴趣的是从不同位置的矩阵中获取值,更准确地说是在矩阵的六个不同位置。位置应以长度为基础,以下是我想公布的数字:

  • 矩阵长度的1/6中的数字
  • 矩阵长度的2/6中的数字
  • 矩阵长度的3/6中的数字
  • 矩阵长度的4/6中的数字
  • 矩阵长度的5/6中的数字
  • 矩阵长度的6/6中的数字

  • 这些值可以打印在另一个矩阵中,所以假设矩阵是“代码>1x5000”/代码>,3/6将在矩阵的中间给出数字。我是Matlab新手,因此非常感谢您的帮助

    MATLAB中的冒号表示法提供了一种从v中提取一系列元素的简便方法:

    v(3:7)    %Extract the third through the seventh elements
    

    您可以手动输入范围或使用函数将分数转换为合适的范围

    ,因为您的问题不清楚,我可以试着给您举个例子。 首先,您可以使用函数获取矩阵的大小

    在Matlab中很容易获得必要的元素:如果知道元素的编号(索引),可以直接寻址到任何元素。因此:
    x(100)
    返回第100个元素。 现在你有了尺寸,知道该怎么做了。最后一刻-如果
    numel(x)/6
    返回非整数,该怎么办

    可以使用舍入函数:、或

    下一步:有很多方法来划分数据。例如,现在您只有6个数字(1/6、2/6等等),但如果有1000个呢?你不能手动操作。因此,您可以使用
    进行
    循环,也可以使用索引矩阵或perfect

    我的例子是:

    divider = [6 5 4 3 2 1] % lets take 1/6 1/5 1/4 1/3 1/2 and 1/1
    ind = ceil( numel(x)./divider)
    res = x(ind)
    

    5000不能被6整除首先,5000不能被6整除。其次:
    x(ceil(linspace(15000,6))
    @StewieGriffin我知道,因此必须解决这个问题,只需将下一个可分割的位置填满。“下一个”是什么意思?地板?天花板?四舍五入?再说一次,“下一个”是什么意思?
    divider = [6 5 4 3 2 1] % lets take 1/6 1/5 1/4 1/3 1/2 and 1/1
    ind = ceil( numel(x)./divider)
    res = x(ind)