zoukankan      html  css  js  c++  java
  • matlab 高级函数 —— circshift、squeeze

    circshift:顾名思义,循环移动,循环的意义在于,移出的数据不丢失,而是来到队列的首部位置,也即其实是将原始序列视为一种圆环。

    1. 基本用法

    默认为右移。

    • Y = circshift(A,K)
    • Y = circshift(A,K,dim)
    circshift(1:10, 3)
        8     9    10     1     2     3     4     5     6     7
    

    2. 简单应用

    将 1, 2, 3, 4, 5, 6, 7 变为 1, 5, 2, 6, 3, 7, 4,也即形成犬牙交错的形式:

    n = 7;
    a = zeros(1, n);
    for i = 1:n,
        a(i) = i;
        a = circshift(a, [0, -1]);
    end
    a

    此时要求长度必须为奇数,而不能为偶数,当长度为偶数时:

    n = 1
    a = 5     0     6     0     7     0     8     0

    3. squeeze

    移除 singleton 的维度,所谓 singleton dimension,是指 size(A, dim) = 1dim

    >> y = rand(2, 1, 3)
                    % size(y, 2) == 1
    y(:,:,1) =
        0.8147
        0.9058
    
    y(:,:,2) =
        0.1270
        0.9134
    
    y(:,:,3) =
        0.6324
        0.0975
    
    >> z = squeeze(y)
                    % 2, 1, 3 ⇒ 2, 3
                    % 1, 2, 3 ⇒ 2, 3
    z =
        0.8147    0.1270    0.6324
        0.9058    0.9134    0.0975
  • 相关阅读:
    Linux网络编程--socket
    UDP学习总结
    TCP协议学习总结
    DNS协议总结
    DHCP协议总结
    ARP协议总结
    二层协议--MPLS协议总结
    二层协议--LLDP协议总结
    二层协议--LACP协议总结
    二层协议--STP协议总结
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9422102.html
Copyright © 2011-2022 走看看