matlab 逻辑数组及其应用

这几天学习了matlab的逻辑数组功能,总的感觉就有两点:

第一,通过对原来的数组a进行逻辑判断后得到逻辑数组b

第二,逻辑数组进行某种运算符操作又回到原数组类型

第三,利用逻辑数组mask功能

测试如下:

disp(‘逻辑数组学习及应用‘);
a = [1 2 3;4 5 6; 7 8 9];
b = a > 4 ;%数组中各个元素与4作比较,逻辑为真则为1
whos

结果:

第二,当执行 c = b + 0后,c 数组为:

第三,它在算术运算中能提供一个屏蔽(mask)。屏蔽(mask)是指一个数组, 它从另一个数组选择所需的元素参与运算。 指定的运算只在选择的元素上执行,

而不执行余下的元素。

未使用时,对数组中>4求平方根。

clc;
clear;
disp(‘逻辑数组学习及应用‘);
a = [1 2 3;4 5 6; 7 8 9];
for ii = 1:size(a,1)
    for jj = 1:size(a,2)
        if a(ii,jj) > 4
        a(ii,jj)=sqrt(a(ii,jj));  %对数组中>4的求平方根
        end
    end
end
a

结果:

a =

1.0000 2.0000 3.0000
4.0000 2.2361 2.4495
2.6458 2.8284 3.0000

使用后:

disp(‘逻辑数组学习及应用‘);
a = [1 2 3;4 5 6; 7 8 9];
b = a > 4; %对数组中>4的逻辑判定,得到逻辑数组
a(b) =sqrt(a(b));
a

结果同上。

记得项目中有一个功能是首先将数组元素中>0的选出变为新数组,继而对其排序,可以考虑用逻辑数组功能,在这里记下了

时间: 2024-08-08 01:07:51

matlab 逻辑数组及其应用的相关文章

matlab cell数组用法

元胞数组: 元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵.组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell).和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的. (1)元胞数组的创建 >> a={'matlab',20;ones(2,3),1:10} a = 'matlab'        [         2

MATLAB cell 数组介绍

转载:http://www.matlabsky.com/forum.php?mod=viewthread&tid=21089 由于工作需要,经常要处理大量的实验数据.基本都是由仪器导出来,随着社会发展的进步,人们获取数据的量在不断增长,很多人都是,现在已经是海量数据时代了... 从cell使用说起在读取文件的时候,cell数组(各种翻译都有,元胞数组,单元数组...直接无视)是Matlab的宠儿,基本都会出现,长期使用发现频率比struct高了不少~无论是Import Data还是使用texts

C++实现MATLAB一维数组函数findpeaks()函数求一维离散值极值(波峰波谷)

一.代码 #include <iostream> #include <vector> using namespace std; // //C++实现求一维离散数据极值(波峰.波谷) // //参数:数组,数组大小 void findPeaks(int *num,int count) { vector<int> sign; for(int i = 1;i<count;i++) { /*相邻值做差: *小于0,赋-1 *大于0,赋1 *等于0,赋0 */ int di

Matlab - 求数组的零值与过零点索引

function zeroindex=pickzero(x)%找出数组的零值及过零点(正负相交处,可能偏离0)m = length(x);x1=x(1:m-1);x2=x(2:m);indz = find(x==0); %zero pointindzer = find(x1.*x2<0); %negative/positiven=length(indzer);for i=1:n if abs(x(indzer(i)))>abs(x(indzer(i)+1)) indzer(i)=indzer(

matlab中数组创建方法

创建数组可以使用 分号 :  逗号, 空格 数组同行用 逗号,或空格分割 不同行元素用 分号: 1 clc; 2 a = [1 2 3 4 5]; 3 b1 = a(3);%第3个元素 4 b2 = a(2:4)%第2/3/4个元素 5 b3 = a(3:end)%第3到最后 6 b4 = a(3:-1:1)%逆序 第 3/2/1元素 一维数组的创建: 1. 用 :冒号 格式:N1:step:N2  第一个元素N1,最后一个元素N2,步长step(step>0,递增或step<0,递减) 2.

MATLAB逻辑函数

%%逻辑函数 %%all:判断是否有元素非0,A是多维矩阵,all(A)是以列为单位来处理的,当前列的逻辑 %值为1,当且仅当当前列的每一个元素都非0 A=[1,2,3;0,2,1;5,0,2]; %all(A)=0 0 1 %例判断B=[2,2,6;7,9,1];的所有元素是否都大于等于1 B=[2,2,6;7,9,1]; ans=all(all(B>=1)); %ans=1,B>=1得到的是一个01的逻辑矩阵,两个all来判断是否所有值都大于1 %% %any:判断矩阵中是否有一个元素非0

Matlab中数组下标是logical,如何处理?

K>> a = 10*ones(1,10); K>> b = [1 56 23 5 6 45 9 7 89 10]; K>> c = b<a c = 1 0 0 1 1 0 1 1 0 0 K>> a(c) = b(c) a = 1 10 10 5 6 10 9 7 10 10 从试验可以看出,逻辑1的话得到原来的值b,否则得到a中值.

转载 matlab矩阵数组常用操作

一. length             返回矩阵最长维的的长度    ndims       返回维数          numel      返回矩阵元素个数size               返回每一维的长度,[rows,cols]=size(A) 矩阵块操作 1.repmat() 数组块状复制 2.blkdiag()对角块生成函数 3.kron()直积 二.矩阵元素的提取与替换 (1)提取 A(i, j) :矩阵 A 中,位于第 i 横列.第 j 直行的元素用冒号(:), 取出一整列

matlab高维数组

对于高维数组,人们习惯地把二维数组的第一维称为"行(Row)",把第二维称为"列(column)",至于第三维,称谓都是不相同的这里为了方便,采用"页(Page)"来称呼. 打个比方,二维数组可以看成由"小方格"拼成的"矩面行"那样,三维数组可以被看成由"小方块"组成的"长方体".对于三维数组来说,无论在那一页的二维行.列数组都应该是同样大小的:无论哪一行上的二维列.