假设我在MATLAB中加载了一个矩阵,它有1822行和3列。
我想从该矩阵中选择总行数的1/10。
我尝试了以下内容,
>> train(size(train,1)/10,:)
error: subscript indices must be either positive integers less than 2^31 or logicals
显然,它没有用。
我该怎么做?
答案 0 :(得分:2)
你的分裂正在返回一个浮点数,因为错误明确指出:
error: subscript indices must be either positive integers less than 2^31 or logicals
但是,即使size(train,1)/10
是一个整数,它也不会按你的意愿工作,因为它只返回第10%的行,而不是所有的元素,直到第10行。
你需要一个整数并从第一个元素中对它进行切片,然后只是截断@GameOfThrows所述的数字。
>> train(1: fix(size(train,1)/10), :)
下面:
, :
选择目标行中的所有列。1: fix(size(train,1)/10),
选择第一行1
的所有行,直到第10行fix(size(train,1)/10)
。答案 1 :(得分:0)
mymat(1: floor(size(mymat,1)/10),:)
所以@GameOfThrows
发布的评论确实有效。