matlab中怎么把logical临行的矩阵转化为double类型

2021-11-04 教育 849阅读
matlab中怎么把logical临行的矩阵转化为double类型
double(A)即可实现

Matlab中什么是logical
logical作为逻辑变量,可以是一种数据类型,第一次见到是在workspace里100*1logical,可以用在取出最值。
logical是布尔变量,可以是一个标量,也可以是一个向量或者是矩阵。可以用作下标。
在帮助文档中给出了一个例子:
A=[123;456;789]

要想取出对角元素,可以用diag(A),也可以借助下标。
构建一个logical矩阵,或者说是下标矩阵logical(eye(3))
T=eye(3)是3*3单位阵
logical(T)是把为真(1)的值取出
即:eye(3)=[100;010;001;]
A(logical(eye(3))的意思是取出下标为真的元素:
最终返回:[1;5;9];

参考:http://blog.csdn.net/waleking/article/details/7270156
求极值
clear;
N=100;
v=rand(N,1);
t=0:length(v)-1;
Lmax=diff(sign(diff(v)))==-2;%logicvectorforthelocalmaxvalue
Lmin=diff(sign(diff(v)))==2;%logicvectorforthelocalminvalue
%matchthelogicvectortotheoriginalvecortohavethesamelength
Lmax=[false;Lmax;false];
Lmin=[false;Lmin;false];
tmax=t(Lmax);%locationsofthelocalmaxelements
tmin=t(Lmin);%locationsofthelocalminelements
vmax=v(Lmax);%valuesofthelocalmaxelements
vmin=v(Lmin);%valuesofthelocalminelements

%plotthemonafigure
plot(t,v);
xlabel('t');ylabel('v');
holdon;
plot(tmax,vmax,'r+');
plot(tmin,vmin,'g+');
holdoff;
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com