• Matlab中cellfun函数的使用


    Compute the mean of each vector in cell array C.
    
    C = {1:10, [2; 4; 6], []};
    
    averages = cellfun(@mean, C)
    This code returns
    
    averages =
        5.5000    4.0000       NaN
    

    .............................................................

      该函数就是专门对cell数组进行操作的,个人认为是代替了传统的for循环,和C语言不一个思想,主要是行列化矩阵,一次处理。

      比如a = {[1 2 3] [4 5 6]},那么cellfun(@length,a)得到6。线cell2mat也可以吧,然后分别计算,在累加。

    Compute the size of each array in C, created in the previous example.
    
    [nrows, ncols] = cellfun(@size, C)
    This code returns
    
    nrows =
         1     3     0
    ncols =
        10     1     0
    

      ..........................................................

      cellfun中使用自定义函数对cell数组进行处理;既然可以自定义函数,那么cellfun中的的中间部分的参数个数和自定义函数需要的参数数目相同。

      还能这么用。

    queryNearestNeighborIds = cellfun( @(vector, index) vector(index), queryCandidateIds, queryNearestNeighborIds, 'UniformOutput', false );
    	

      ................................................

    Create a cell array that contains strings, and abbreviate those strings to the first three characters. Because the output strings are nonscalar, set UniformOutput to false.
    
    days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'};
    
    abbrev = cellfun(@(x) x(1:3), days, 'UniformOutput', false)
    The syntax @(x) creates an anonymous function. This code returns
    
    abbrev = 
        'Mon'    'Tue'    'Wed'    'Thu'    'Fri'
  • 相关阅读:
    Socket网络编程
    android开发常用颜色
    eclipse使用技巧以及开发安卓程序过程中遇到的问题
    XML文件中的常用属性
    将博客园的文本编辑栏属性变成可以粘贴
    显示单位px、dip、pt以及sp
    WIN32 API IP地址转换
    常用win32api函数
    win32—GrafMenu的CreateBitmapIndirect创建失败的问题
    #pragam 使用方法
  • 原文地址:https://www.cnblogs.com/hxsyl/p/4646033.html
Copyright © 2020-2023  润新知