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