MATLAB的两种移位运算
MATLAB的两种移位运算:
1)circshift矩阵移位
circshift:循环移位数组
语法:B = circshift(A,shiftize)
说明:
B = circshift(A,shiftize)通过shiftize元素循环移位数组A中的值。shiftize是整数标量的向量,其中第n个元素指定数组A的第n维的移位量。如果移位中的元素为正,则A的值向下(或向右)移位。如果是负数,则A的值向上(或向左)移动。如果为0,则不移动该维度中的值。
示例:
将第一维值向下循环移动1.
A = [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
B =环球(A,1)
B =
7 8 9
1 2 3
4 5 6
将第一维值向下循环1,将第二维值向左
循环1. B = circshift(A,[1 -1]);
B =
8 9 7
2 3 1
5 6 4
2)bitshift位移位
bitshift:
移位位指定的位数
句法 :
C = bitshift(A,k)
C = bitshift(A,k,n)
说明:
C = bitshift(A,k)返回移位了k位的A的值。输入参数A必须是无符号整数或无符号整数数组。通过k移位与乘以2 ^ k相同。允许k的负值,这对应于向右移位,或者除以2 ^ abs(k)并截断为整数。如果移位导致C溢出无符号整数类A中的位数,则丢弃溢出位。
C = bitshift(A,k,n)导致任何溢出n位的位被丢弃。n的值必须小于或等于A的无符号整数类的位长(例如,对于uint32,n <= 32)。
而不是使用bithift(A,k,8)或n的另一个幂2,考虑使用bitshift(uint8(A),k)或适当的无符号整数类。
例子:
例1
将1100(12,十进制)移位到左边的两位产生110000(48,十进制)。
C = bitshift(12,2)
C =
48
例2
重复地将无符号16位值的位向左移位,直到所有非零位溢出。跟踪二进制的进度:
a = intmax('uint16');
disp(sprintf(...
'初始uint16值%5d是二进制中的%16s',...
a,dec2bin(a)))
对于k = 1:16
a = bitshift(a,1);
disp(sprintf(...
'Shifted uint16 value%5d is binary 16s in binary',...
a,dec2bin(a)))
end
MATLAB的两种移位运算的更多相关文章
- Matlab提供了两种除法运算:左除(\)和右除(/)
Matlab提供了两种除法运算:左除(\)和右除(/).一般情况下,x=a\b是方程a*x =b的解,而x=b/a是方程x*a=b的解.例:a=[1 2 3; 4 2 6; 7 4 9]b ...
- [JAVA]移位运算(左移<<,右移>>和无符号右移>>>)
一.背景知识 整数在内存中是以二进制的形式存在的,而且存的是该整数的补码.最高位代表符号位,正数为0,负数为1 正数的补码是其二进制本身,负数的补码则是 符号位保持1不变,其他位按位取反再加1,+0和 ...
- 在shell script中进行数值运算的两种方法
方法1:使用"$((计算式))"的方式进行数值运算,不需要使用declare命令显示声明数值型变量来存储计算结果: 方法2:使用declare命令配合"-i"选 ...
- Matlab画平滑曲线的两种方法
自然状态下,用plot画的是折线,而不是平滑曲线. 有两种方法可以画平滑曲线,第一种是拟合的方法,第二种是用spcrv,其实原理应该都一样就是插值.下面是源程序,大家可以根据需要自行选择,更改拟合的参 ...
- Arduino下LCD1602综合探究(上)——1602的两种驱动方式,如何使LCD的控制编程变得更简单
一.前言: LCD ( Liquid Crystal Display 的简称)液晶显示器,已经逐渐替代CRT成为主流的显示设备之一,因此也成为了单片机发烧友绕不过的话题之一:而LCD1602更是很多单 ...
- matlab矩阵合并及相关运算
1.matlab允许向量(和矩阵)合并,且matlab提供了两种合并方式,[a,b]和[a;b],两者的结果是不一样的. a=rand(2,3): b=rand(2,3): c=[a;b]: d=[a ...
- JAVA:二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题(5)
一.二进制,位运算,移位运算 1.二进制 对于原码, 反码, 补码而言, 需要注意以下几点: (1).Java中没有无符号数, 换言之, Java中的数都是有符号的; (2).二进制的最高位是符号位, ...
- Java学习第五篇:二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题
一.二进制,位运算,移位运算 1.二进制 对于原码, 反码, 补码而言, 需要注意以下几点: (1).Java中没有无符号数, 换言之, Java中的数都是有符号的; (2).二进制的最高位是符号位, ...
- 【原创】Java移位运算
学习移位运算,首先得知道参与移位运算的类型的位数,那先来复习下Java基础类型的占位数吧. Java基础类型 Java基础类型总结一览表 类型 二进制位数 最大值 最小值 初始化值 表示形式 带符号 ...
随机推荐
- Java并发编程:Java的四种线程池的使用,以及自定义线程工厂
目录 引言 四种线程池 newCachedThreadPool:可缓存的线程池 newFixedThreadPool:定长线程池 newSingleThreadExecutor:单线程线程池 newS ...
- (4)Jquery1.8.3快速入门_基本选择器
一.Jquery选择器: 基本选择器: 1.id #id 根据元素的id获取的唯一元素. 2.class ...
- 【Redis】3、Redis集群部署
Redis 集群是一个提供在多个Redis间节点间共享数据的程序集. Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下 ...
- jsp-servlet 的相关请求路径问题 —url
jsp-servlet 的相关请求路径问题 —url 本文章主要解决的几方面问题如下: 常见涉及路径元素: jsp页面请求和servlet请求转发.重定向的关系 如何避免下一步请求受上一步请求在UR ...
- Swagger2限定接口范围
前面在使用Swagger2时遇到的坑中简单介绍了Swagger的使用. 不过默认情况下,Swagger2会把项目中的所有接口都展示在列表里,特别是你用了Springboot/SpringCloud之后 ...
- 基于python的websocket开发,tomcat日志web页面实时打印监控案例
web socket 接收器:webSocket.py 相关依赖 # pip install bottle gevent gevent-websocket argparse from bottle i ...
- 【读书笔记】iOS-加速计与陀螺仪
一,数据的“滤波” 直接从加速度计获得的原始数据,往往不能直接使用,而是需要去除一些干扰数据,这个过程称为“滤波”.“滤波”一词来源于无线电技术中对无线电信号的处理过程.事实上从数学角度而言它们是一样 ...
- 从零开始学习html(六)开始学习CSS,为网页添加样式
一.认识CSS样式 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type&quo ...
- svn下已add文件如何忽略
正如官方指南所言:TortoiseSVN → Unversion and add to ignore list,取消版本控制并添加至忽略列表. http://www.cnblogs.com/huang ...
- VS发布web应用程序报:无法识别的特性“xmlns:xdt”。请注意特性名称区分大小写 或 未能将文件obj\...复制到obj\...未能找到路径
问题1:无法识别的特性“xmlns:xdt”.请注意特性名称区分大小写 问题2:未能将文件obj\...复制到obj\...未能找到路径 解决办法:将web项目文件下的obj文件夹从项目中排除,然后再 ...