m**********e 发帖数: 220 | 1 x是一个横向量,10个元素
如果t也是一个横向量,10个元素
为啥sum(x<=t)就是把x里的每个元素跟t里对应的元素相比较然后统计出个数呢
要是t是一个数的话,sum(x<=t)就是把x里的每个元素和t比较然后统计出小于t的个数
我想知道如何做才能让t是10个元素向量的时候,统计出对应每个t(i)sum(x<=t(i))的
个数呢
不想用循环,所以想问下有没有简单的命令
还有就是为啥matlab会这样计算。。。
谢谢! | r*g 发帖数: 3159 | 2 arrayfun(@(y) sum(x<=y),t) | b***i 发帖数: 3043 | 3 x<=t是一个逻辑表达式,结果是一个横向量10个元素,由1和0构成,对应x(i)是否<=t(
i)。
如果想统计x里面有多少个<=t(i),则可以把t变成一个横向常数的矩阵,纵向变化,而
x是一个纵向常数横向变化的矩阵,然后结果横向求和
【在 m**********e 的大作中提到】 : x是一个横向量,10个元素 : 如果t也是一个横向量,10个元素 : 为啥sum(x<=t)就是把x里的每个元素跟t里对应的元素相比较然后统计出个数呢 : 要是t是一个数的话,sum(x<=t)就是把x里的每个元素和t比较然后统计出小于t的个数 : 我想知道如何做才能让t是10个元素向量的时候,统计出对应每个t(i)sum(x<=t(i))的 : 个数呢 : 不想用循环,所以想问下有没有简单的命令 : 还有就是为啥matlab会这样计算。。。 : 谢谢!
| l********a 发帖数: 1154 | 4 xx = repmat(x,10,1);
tt = repmat(t',1,10);
sum(xx<=tt,2)
x和t就是你原来的1*10的行向量
最后打印出的结果是10*1的列向量,每行等于sum(x
【在 m**********e 的大作中提到】 : x是一个横向量,10个元素 : 如果t也是一个横向量,10个元素 : 为啥sum(x<=t)就是把x里的每个元素跟t里对应的元素相比较然后统计出个数呢 : 要是t是一个数的话,sum(x<=t)就是把x里的每个元素和t比较然后统计出小于t的个数 : 我想知道如何做才能让t是10个元素向量的时候,统计出对应每个t(i)sum(x<=t(i))的 : 个数呢 : 不想用循环,所以想问下有没有简单的命令 : 还有就是为啥matlab会这样计算。。。 : 谢谢!
|
|