最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Matlab實(shí)現(xiàn)統(tǒng)計(jì)集合中各元素出現(xiàn)次數(shù)的示例代碼

 更新時(shí)間:2022年05月05日 11:40:26   作者:slandarer  
統(tǒng)計(jì)數(shù)組中各個(gè)元素?cái)?shù)量是一個(gè)很常用的功能,本文主要為大家介紹了如何利用Matlab優(yōu)雅的統(tǒng)計(jì)集合中各元素出現(xiàn)的次數(shù),感興趣的可以了解一下

前言

統(tǒng)計(jì)數(shù)組中各個(gè)元素?cái)?shù)量是一個(gè)很常用的功能,但我試著用了MATLAB中自帶的統(tǒng)計(jì)函數(shù) tabulate:

但是發(fā)現(xiàn)了兩個(gè)問題:

當(dāng)元素中英文混雜時(shí):

X = {'slandarer';'slandarer';'hikari';'hikari';'公眾號';'公眾號';
    'CSDN';'CSDN';'CSDN'};
tabulate(X)

我們發(fā)現(xiàn)中英文混雜時(shí)輸出會(huì)對不齊:

圖片

當(dāng)元素為純整數(shù)數(shù)值時(shí):

X=[6,5,6];
tabulate(X)

即使元素沒出現(xiàn)也會(huì)從1開始一直顯示到最大值:

圖片

因而,為了解決這倆問題,我自行寫了個(gè)元素統(tǒng)計(jì)類:statable

工具函數(shù)類

classdef statable
    properties
        % properties relationship:
        % obj.Value=obj.Name(obj.Pos);
        % obj.Percent=obj.Count/length(X);
        % obj.Table=table(obj.Value,obj.Count,obj.Percent);
        Value;Count;Percent;Table;Name;Pos
    end

    methods
        % 構(gòu)造函數(shù)
        function obj=statable(X)
            flag=false;
            if isnumeric(X),flag=true;X=X(:);end

            % 元素類型轉(zhuǎn)換
            SX=sort(X);OrgX=SX;
            [SX,Xid]=grp2idx(SX);
            obj.Name=Xid;
            SX=SX(~isnan(SX));
            DSX=diff(SX);

            % 出現(xiàn)次數(shù)統(tǒng)計(jì)
            DSX=find([DSX;1]);
            obj.Pos=SX(DSX);
            obj.Count=diff([0;DSX]);
            obj.Percent=obj.Count/length(SX);
            
            % 存儲為table
            obj.Value=obj.Name(obj.Pos);
            if flag,obj.Value=unique(OrgX);end
            obj.Table=table(obj.Value,obj.Count,obj.Percent);
        end
        % 輸出函數(shù)
        function show(obj)
            fprintf(1,'%15s%10s%11s\n','Value','Count','Percent');
            for i=1:length(obj.Pos)
                tValue=obj.Name{obj.Pos(i)};
                mspace=length(tValue)-sum(abs(tValue)>31&abs(tValue)<127);
                fprintf(['%',num2str(round(15-mspace)),'s'],tValue);
                fprintf('%10d',obj.Count(i));
                fprintf('%10.3f%%\n',100*obj.Percent(i));
            end
        end
    end
end

使用方式

統(tǒng)計(jì)數(shù)字

X=[randi([0,10],[100000,1])];
T=statable(X);
T.show()

圖片

統(tǒng)計(jì)單詞、名稱

X = {'slandarer';'slandarer';'hikari';'hikari';'公眾號';'公眾號';
    'CSDN';'CSDN';'CSDN'};
T=statable(X);
T.show()

圖片

統(tǒng)計(jì)字符

X=['Life is full of confusing and disordering Particular time,a particular location,',...
    'Do the arranged thing of ten million time in the brain,Step by step ,',...
    'the life is hard to avoid delicacy and stiffness No enthusiasm forever,',...
    'No unexpected happening of surprising and pleasing So,',...
    'only silently ask myself in mind Next happiness,when will come?']';

T=statable(X);
T.show()

圖片

當(dāng)然,也可以通過如下方式獲取其他數(shù)據(jù):

T=statable(X);

T.Table

T.Value

T.Count

T.Percent

完整代碼

statable

classdef statable
    properties
        % properties relationship:
        % obj.Value=obj.Name(obj.Pos);
        % obj.Percent=obj.Count/length(X);
        % obj.Table=table(obj.Value,obj.Count,obj.Percent);
        Value;Count;Percent;Table;Name;Pos
    end

    methods
        % 構(gòu)造函數(shù)
        function obj=statable(X)
            flag=false;
            if isnumeric(X),flag=true;X=X(:);end

            % 元素類型轉(zhuǎn)換
            SX=sort(X);OrgX=SX;
            [SX,Xid]=grp2idx(SX);
            obj.Name=Xid;
            SX=SX(~isnan(SX));
            DSX=diff(SX);

            % 出現(xiàn)次數(shù)統(tǒng)計(jì)
            DSX=find([DSX;1]);
            obj.Pos=SX(DSX);
            obj.Count=diff([0;DSX]);
            obj.Percent=obj.Count/length(SX);
            
            % 存儲為table
            obj.Value=obj.Name(obj.Pos);
            if flag,obj.Value=unique(OrgX);end
            obj.Table=table(obj.Value,obj.Count,obj.Percent);
        end
        % 輸出函數(shù)
        function show(obj)
            fprintf(1,'%15s%10s%11s\n','Value','Count','Percent');
            for i=1:length(obj.Pos)
                tValue=obj.Name{obj.Pos(i)};
                mspace=length(tValue)-sum(abs(tValue)>31&abs(tValue)<127);
                fprintf(['%',num2str(round(15-mspace)),'s'],tValue);
                fprintf('%10d',obj.Count(i));
                fprintf('%10.3f%%\n',100*obj.Percent(i));
            end
        end
    end
end

demo

% demo to test HistRate

X = {'slandarer';'slandarer';'hikari';'hikari';'公眾號';'公眾號';
    'CSDN';'CSDN';'CSDN'};
T=statable(X);
T.show()
disp(' ')


X=[randi([0,10],[100000,1])];
T=statable(X);
T.show()
disp(' ')

X=['Life is full of confusing and disordering Particular time,a particular location,',...
    'Do the arranged thing of ten million time in the brain,Step by step ,',...
    'the life is hard to avoid delicacy and stiffness No enthusiasm forever,',...
    'No unexpected happening of surprising and pleasing So,',...
    'only silently ask myself in mind Next happiness,when will come?']';

T=statable(X);
T.show()
disp(' ')

T.Table
%T.Value
%T.Count
%T.Percent

到此這篇關(guān)于Matlab實(shí)現(xiàn)統(tǒng)計(jì)集合中各元素出現(xiàn)次數(shù)的示例代碼的文章就介紹到這了,更多相關(guān)Matlab統(tǒng)計(jì)元素出現(xiàn)次數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++下標(biāo)運(yùn)算符詳解

    C++下標(biāo)運(yùn)算符詳解

    C語言中的下標(biāo)運(yùn)算符用于訪問數(shù)組或指針變量中的元素,它使用方括號 [] 來表示,并在方括號內(nèi)指定元素的索引位置,本文給大家詳細(xì)的講解一下C++的下標(biāo)運(yùn)算符,需要的朋友可以參考下
    2023-09-09
  • Python擴(kuò)展C/C++庫的方法(C轉(zhuǎn)換為Python)

    Python擴(kuò)展C/C++庫的方法(C轉(zhuǎn)換為Python)

    這篇文章主要介紹了Python擴(kuò)展C/C++庫的方法(C轉(zhuǎn)換為Python),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • C語言實(shí)現(xiàn)電話簿項(xiàng)目管理

    C語言實(shí)現(xiàn)電話簿項(xiàng)目管理

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)電話簿項(xiàng)目管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 在C++中使用HP-Socket

    在C++中使用HP-Socket

    這篇文章主要介紹了C++中簡單使用HP-Socket,HP-Socket 是一套通用的高性能 TCP/UDP /HTTP 通信 框架 ,包含服務(wù)端組件、客戶端組件和 Agent 組件,廣泛適用于各種不同應(yīng)用場景的 TCP/UDP /HTTP 通信系統(tǒng),下面來看看更具體的介紹吧
    2021-11-11
  • 詳解C++中的函數(shù)調(diào)用和下標(biāo)以及成員訪問運(yùn)算符的重載

    詳解C++中的函數(shù)調(diào)用和下標(biāo)以及成員訪問運(yùn)算符的重載

    這篇文章主要介紹了詳解C++中的函數(shù)調(diào)用和下標(biāo)以及成員訪問運(yùn)算符,講到了這些二元運(yùn)算符使用的語法及重載,需要的朋友可以參考下
    2016-01-01
  • 將字符串str1復(fù)制為字符串str2的三種解決方法

    將字符串str1復(fù)制為字符串str2的三種解決方法

    以下是對將字符串str1復(fù)制為字符串str2的三種解決方法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • Qt使用Matlab函數(shù)的詳細(xì)步驟

    Qt使用Matlab函數(shù)的詳細(xì)步驟

    由于項(xiàng)目需要,需要調(diào)用現(xiàn)有的matlab程序,下面這篇文章主要給大家介紹了關(guān)于Qt使用Matlab函數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • 如何實(shí)現(xiàn)socket網(wǎng)絡(luò)編程的多線程

    如何實(shí)現(xiàn)socket網(wǎng)絡(luò)編程的多線程

    首先,學(xué)好計(jì)算機(jī)網(wǎng)絡(luò)知識真的很重要。雖然,學(xué)不好不會(huì)影響理解下面這個(gè)關(guān)于宏觀講解,但是,學(xué)好了可以自己打漁吃,學(xué)不好就只能知道眼前有魚吃卻打不到漁。在Java中網(wǎng)絡(luò)程序有2種協(xié)議:TCP和UDP,下面可以和小編一起學(xué)習(xí)下
    2019-05-05
  • N叉樹的三種遍歷(層次遍歷、前序遍歷、后序遍歷)

    N叉樹的三種遍歷(層次遍歷、前序遍歷、后序遍歷)

    本文主要介紹了N叉樹的三種遍歷(層次遍歷、前序遍歷、后序遍歷),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C語言文件操作總結(jié)

    C語言文件操作總結(jié)

    本篇文章給大家通過代碼示例講述了C語言文件操作的相關(guān)知識點(diǎn),對此有興趣的朋友可以參考學(xué)習(xí)下。
    2018-03-03

最新評論

乐昌市| 长泰县| 讷河市| 兴义市| 集贤县| 噶尔县| 东光县| 汨罗市| 涟源市| 长寿区| 镇雄县| 米易县| 江达县| 北流市| 简阳市| 沙坪坝区| 台中县| 河东区| 涞水县| 宜兰县| 普定县| 宝丰县| 建德市| 交城县| 叙永县| 安庆市| 大兴区| 鄢陵县| 洞头县| 泽普县| 汝南县| 宝鸡市| 万载县| 南涧| 江安县| 新兴县| 日喀则市| 巴林左旗| 广州市| 天等县| 涞源县|