求高手!matlab查列向量(1,1,2,3,6,5)中各个数的个数 MATLAB一向量[1 2 3 4 5 6 7 8 9 10...

matlab\u5982\u4f55\u5bf9\u5411\u91cf\u7d2f\u8ba1\u6c42\u548c\uff0c\u4f8b\u5982\uff081\uff0c2\uff0c3\uff09\uff0c\u6c42\u5f97\uff081\uff0c3\uff0c6\uff09

cumsum\u51fd\u6570\u3002
\u4f8b\u5982\uff1a
cumsum(1:5)
\u5f97\u5230\uff1a
[1 3 6 10 15]

\u4e3e\u4e2a\u4f8b\u5b50\uff0c\u4e00\u4e2a\u957f\u5ea6\u4e3a10\u7684\u884c\u5411\u91cf\uff0c\u6bcf5\u4e2a\u6570\u8fdb\u884c\u5e73\u5747\uff1a
a=[ 1 2 3 4 5 6 7 8 9 10]
\u7528reshape\u6539\u53d8\u77e9\u9635\u7684\u578b
b=reshape(a,5,2)
\u5f97\u5230\u7ed3\u679c\u5982\u4e0b\uff1a
b =
1 6
2 7
3 8
4 9
5 10
\u6c42\u53d6\u5e73\u5747\u503c
mean(b)
\u7ed3\u679c\u5982\u4e0b\uff1a
>> mean(b)
ans =
3 8

clear all
m=[1,1,2,3,6,5];

Nmax=max(m(:));
Nmin=min(m(:));
IN=1;%间隔精度,如果是整数挨个取值则取1,如果有小数则要根据你要求取值,你可以试试取0.5或0.2时的结果
 

for i=Nmin:IN:Nmax;     
     
    n(length(Nmin:IN:Nmax)-floor((Nmax-i)/IN))=sum(m>=i&m<i+IN,2);
     %这是编程的核心部分,就是i的值与整数下标的对应关系的推导
end

S=[n;(Nmin:IN:Nmax)];
stem(S(2,:),S(1,:),'fill','--');
title('数据值个数统计'),xlabel('数据值'),ylabel('个数');

 

 

这是个通用程序,可以设置间隔精度,不局限于正整数,类似于hist、histc函数,不过matlab的histc函数是用C++编制的,用matlab编制由于循环嵌套、“==”关系符的大Bug,以及数组赋值方式的缺陷,这类问题要想满足实用要求对于matlab并不好编。其它答案只是适用整数,如果是小数或是实际采集的数据,那么由于精度问题“==”是完全无法使用的,这是matlab迄今为止一个重大的Bug。



%data
m=[1 1 2 3 6 5]

minm=min(m);
maxm=max(m);
for i=minm:maxm
num(i)=length(find(m==i));
end
num

a=max(m);
for i=1:a
b(i)=length(find(m==i));
end

  • 姹傞珮鎵!matlab鏌ュ垪鍚戦噺(1,1,2,3,6,5)涓悇涓暟鐨勪釜鏁
    绛旓細clear allm=[1,1,2,3,6,5];Nmax=max(m(:));Nmin=min(m(:));IN=1;%闂撮殧绮惧害锛屽鏋滄槸鏁存暟鎸ㄤ釜鍙栧煎垯鍙1锛屽鏋滄湁灏忔暟鍒欒鏍规嵁浣犺姹傚彇鍊,浣犲彲浠ヨ瘯璇曞彇0.5鎴0.2鏃剁殑缁撴灉 for i=Nmin:IN:Nmax; n(length(Nmin:IN:Nmax)-floor((Nmax-i)/IN))=sum(m>=i&m...
  • 扩展阅读:matlab怎么求向量的模 ... matlab行向量生成列向量 ... matlab常用命令大全 ... matlab怎么输出向量 ... matlab生成一个列向量 ... matlab如何求向量的模 ... matlab计算向量的模 ... matlab如何计算交叉乘积阵 ... matlab生成全为1的列向量 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网