MATLAB基础篇——基本语法

2023-11-13

MATLAB
————Matrix laboratory
一般操作:
1.操作界面:主窗口,命令窗口,工作空间窗口,当前目录窗口和搜索路径
2.帮助系统: help命令 lookfor命令
help 函数名
help(‘函数名’)
lookfor 函数名 %lookfor命令更加宽松,检索所有m文件返回包含函数名的全部函数
3.注释:%这是一条注释
4.语句后加;不显示结果
5.clc 清空命令行窗口,clf 清除figure上图像

一、数据类型与变量

数据类型

数值类型:整型,浮点型
字符类型

注意:
1.MATLAB的处理对象是矩阵(可以理解为MATLAB系统实现了矩阵这种特殊数据结构,数据以矩阵形式进行存储操作——数据类型是针对矩阵元素)
2.向量和标量可以看作特殊的矩阵
3.没有布尔类型,但是以非0表示真,0表示假
4.一般情况下矩阵的元素是相同的数据类型,但是也有将不同类型的数据构成矩阵的元素的数据结构——特殊的矩阵——结构,单元矩阵

变量

变量:对象的引用,代表若干内存单元,通过变量名来对变量所引用的对象进行访问

1.命名规则: 字母开头,后接字母、下划线或数字
2.预定义变量
系统本身定义的变量,尽量避免对这些变量赋值,会覆盖原来的含义
ans——计算结果默认赋值变量
eps——机器零阈值
pi——π的近似值
i,j——虚数单位
inf,Inf——无穷大
NaN,nan——非数,如0/0,inf/inf
nargin——函数输入参数个数
nargout——函数输出参数个数

3.变量管理
命令行窗口:
内存变量的显示——who, whos(内容更详细)
内存变量的删除——clear, clear 变量名列表 (多个之间用空格隔开)

工作区窗口:编辑或删除

4.内存变量文件
利用MAT文件可以把当前MATLAB工作空间中的变量保留下来
MAT文件是一种二进制格式文件,文件后缀.mat
变量写入文件与导入matlab通过save和load命令:
save 文件名 [变量名列表]
load 文件名 [变量名列表]

当然可以通过主窗口的界面操作进行保存与导入
注:
1.文件名不需要加引号,不需要带文件后缀.mat,可以带路径
2.变量名列表中变量的个数不限,省略则默认写入/导入所有的变量,多个变量名之间用空格隔开
3.load 是覆盖的写入,要想追加,则加上 空格-append

5.数据的输出格式
数据的表示常用:日常记数法和科学记数法 1e2——10^2, e,E表示10为底的指数
数据的输出格式靠format命令来设置
format 格式符
格式符常见:short(默认的) long rat(近似有理数)

注意:
1.short输出带4位小数,不超过7位有效数字,
大于1000带小数(非0)的实数用5位有效数字的科学记数法
2.如果输出的矩阵(标量是特殊的矩阵)的每个元素数值是整的,则以不带小数的纯整数格式显示
有一个不是,都是默认小数形式输出
3.每个数据元素的表示和存储都是双精度,format只影响数据的显示,不影响数据的存储

二、矩阵

介于MATLAB处理的基本对象是矩阵数据结构,即以矩阵为基本处理单元,我们重点讨论矩阵。

1.矩阵的建立
直接输入——[]括起来,同一行元素用空格或逗号隔开,不同行用分号隔开,注意合法性
M文件建立——M文件编辑,命令行输入文件名创建变量

2.冒号表达式

产生向量[ … ](特殊的矩阵)
start:step:end
省略步长,默认=1

linspace(start,end,number)与 start:(end-start)/number:end等价

3.矩阵的拆分

a、 下标(subscript)和序号(index)——按列编号
下标和序号之间可以转换——sub2ind,ind2sub
index=sub2ind(size(A),i,j)
[i,j]=ind2sub(size(A),index)
参数可以是矩阵,两个矩阵代表下标方式,一个矩阵代表序号方式
注意: 当索引大于原来矩阵的行数/列数/总编号,MATLAB会自动拓展矩阵,并且拓展后未赋值的矩阵元素置为0

A=[1,2,3;4,5,6;7,8,9];
>> A([2,4])
ans =

     4     2

>> A([1;2])

ans =

     1
     4

>> A([1,3],[1,3])

ans =

     1     3
     7     9

>>  A([1;3],[1;3])

ans =

     1     3
     7     9

b、冒号表达式
A(:,j)——第j列
A(i:i+m,:)——第i到i+m行
A(i:i+m,j:j+n)——i到i+m行j到j+n列交叉的部分
A(:)将矩阵的元素按列叠成一个列向量

end运算符可以表示某一维的末尾

c、利用空矩阵删除矩阵元素

字符串

单引号或双引号括起来的字符序列,MATLAB将字符串当作一个行向量,每个元素对应一个字符
相关函数:

1.eval(s)  %s为字符串,表示将字符串的内容当作MATLAB语句来执行
>> A

A =

     1     2     3
     4     5     6
     7     8     9

>> y='sin(A).*2+cos(A)'

y =

    'sin(A).*2+cos(A)'

>> eval(y)

ans =

    2.2232    1.4024   -0.7078
   -2.1672   -1.6342    0.4013
    2.0679    1.8332   -0.0869

注意: MATLAB中字符串的拼接不能使用+,但是由于MATLAB按ASCII码存储字符串,
所以字符串可以进行算术运算

>> 'adkj'+2

ans =

    99   102   109   108

>> 'wy'*2

ans =

   238   242

>> 'wy'^2
错误使用  ^  (line 51)
用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵求幂,请使用 '.^'>> ['wy';'wy']^2

ans =

       28560       29040
       28560       29040

>> 'wy'.^2

ans =

       14161       14641
2.strcat用于字符串的拼接,
strcat(s1,s2)

3.字符串类型与其他类型的转换函数
int2str
num2str
mat2str
setstr——将ASCII码值转换为对应字符
str2num

>> a=str2num('ad')

a =

     []

 
>> str2num('a')

ans =

     []

>> help str2num
str2num - 将字符数组转换为数值数组

    此 MATLAB 函数 将字符数组或字符串标量转换为数值矩阵。输入可以包含空格、逗号和分号,以指示单独的元素。如果 str2num
    不能将输入解析为数值,则返回空矩阵。

    X = str2num(chr)
    [X,tf] = str2num(chr)

    另请参阅 cast, char, hex2num, num2str, sscanf, str2double

    str2num 的参考页
    名为 str2num 的其他函数

>> num2str(1)

ans =

    '1'

>> int2str(20)

ans =

    '20'

>> mat2str(A)

ans =

    '[1 2 3;4 5 6;7 8 9]'

>> str2num('23')

ans =

    23

>> str2num('[1,2]')

ans =

     1     2

>> str2mat('2')

ans =

    '2'

>> help str2mat
str2mat - (不推荐)基于字符串构建用空白进行填补的字符数组

    此 MATLAB 函数 构成字符数组 S,其中包含字符数组 T1, T2, T3, ...

    S = str2mat(T1, T2, T3, ...)



4.strcmp - 比较字符串

    此 MATLAB 函数 比较 s1 和 s2,如果二者相同,则返回 1 (true),否则返回 0
    (false)。如果文本的大小和内容相同,则它们将视为相等。返回结果 tf 的数据类型为 logical。

    tf = strcmp(s1,s2)

>> strcmp('c','c')

ans =

  logical

   1

>> strcmp('a','c')

ans =

  logical

   0

>> strcmp('c','a')

ans =

  logical

   0

三、运算

1.算术运算+、-、*、/、\、%、^

注意: 这些算术运算是在矩阵意义下进行的,单个数据的算术运算只是一个特例
±运算规则:矩阵维数一致,对应元素±,否则出错,但是标量和矩阵可以进行运算,矩阵的每个元素和标量均进行±
乘运算规则:矩阵要可乘的,遵循矩阵乘法规则,矩阵和标量可乘,矩阵的每个元素均和标量相乘
/、\规则 B 除 A : A / B = A ∗ i n v ( B ) , A   B = i n v ( A ) ∗ B B除A:A/B=A*inv(B),A\ B=inv(A)*B BAA/B=AinvBA B=invAB,注意除数与被除数
标量可同时为除数与被除数,单独为除数,但不能单独为被除数
^规则:A ^x,要求A为方阵(标量为特例),x为标量

点运算:
.* , .\, ./, .^
矩阵的点运算,如果矩阵维数一样,则对应元素进行运算
当有标量时,标量和矩阵的每个元素进行运算

尤其乘方:
A ^x , A . ^B , A. ^x, x . ^A
A,B表示矩阵(标量,向量是特例),x为标量
当A,B不是标量时A,B需至少有一维相同,矩阵则对应元素乘方
向量与矩阵.^时,行向量时矩阵每行均与行向量对应元素乘方,列向量时,矩阵每列均与列向量对应元素乘方

>> A

A =

     1     2     3
     4     5     6
     7     8     9
>> A^2

ans =

    30    36    42
    66    81    96
   102   126   150

>> A.^2

ans =

     1     4     9
    16    25    36
    49    64    81

>> A.^A

ans =

           1           4          27
         256        3125       46656
      823543    16777216   387420489

>> 2.^A

ans =

     2     4     8
    16    32    64
   128   256   512

>> A.^[1,2,3]

ans =

     1     4    27
     4    25   216
     7    64   729

>> A.^[1;2;3]

ans =

     1     2     3
    16    25    36
   343   512   729

>> A.^[1,2]
错误使用  .^ 
矩阵维度必须一致。

>> [1,2,3].^A

ans =

           1           4          27
           1          32         729
           1         256       19683

>> [1;2;3].^A

ans =

           1           1           1
          16          32          64
        2187        6561       19683

2.关系运算
<,>,=,~=,≤,≥
规则:
比较量为标量时,直接比较大小,成立返回1,否则返回0;
为同维度矩阵时,对应元素进行关系运算;
标量与矩阵则标量与矩阵的每个元素进行关系运算

3.逻辑运算
&,|,~
(&&,||只用于标量)
运算规则同关系元素类似

优先级(大体上):~单目运算符>算术运算符>关系运算符>逻辑运算符

注意:
1.涉及矩阵的运算且要的是对应元素进行运算时要注意使用点运算,尤其是和函数一起时不要忘记了
2.可以巧妙运用关系运算和逻辑元素对函数值进行分段处理

四、MATLAB常用函数

MATLAB提供的函数自变量规定为矩阵,然而运算法则是将函数逐项作用于矩阵的元素上,因而运算结果是一个与自变量同维的矩阵

sin,cos,tan,sinh,cosh,tanh
asin,acos,atan,asinh,acosh,atanh
sqrt
log——自然对数函数
log10——常用对数函数
log2——以2为底的对数函数
log_M(N)=log(M)/log(N)=log10(M)/log10(N)
exp
pow2
abs
rem,mod(模运算)
fix,round,ceil,floor(取整)
angle,real,imag,conj(复数共轭元素conjugate)
sign(符号函数)
gcd(最大公因子)
lcm(最小公倍数)
xor(异或)
find(返回非零元素的位置,给定两个接受变量得到下标索引,不给定或者给一个得到序号索引)
all 若向量的所有元素非零,则返回1(参数为矩阵的话,以列向量作为一个向量处理,返回结果是针对每列向量的一个横向量,可以指定维数转为行向量)

abs:可以求实数的绝对值,复数的模,字符串的ASCII
fix,round,ceil,floor:fix直接去掉小数部分,round四舍五入,ceil向上取整,floor向下取整
rem,mod区别在涉及负数时不一样
rem(x,y)=x-y.*fix(x./y)
mod=x-y.*floor(x./y)

size(A)——返回矩阵的行数和列数
length(A)——=max(size(A))
ndims(A)——给出A的维数
reshape(A,m,n)——在保持总元素个数不变的情况,对矩阵进行重排

>>help ndims
ndims - 数组维度数目
 此 MATLAB 函数 返回数组 A 的维数。维数总是大于等于 2。函数会忽略 size(A,dim) = 1 所针对的尾部单一维度。
    N = ndims(A)

五、矩阵分析与处理

1.特殊矩阵

a、通用的特殊矩阵:zeros,ones,eye,rand(产生0~1间均匀分布的随机矩阵),randn(产生均值为0,方差为1的标准正态分布随机矩阵)

以上函数的调用格式相差无几,以zeros为例
zeros(m)——mxm矩阵
zeros(m,n)——mxn矩阵
zeros(size(A))——和矩阵A同大小的矩阵

建立随机矩阵:
[a,b]均匀分布的n阶随机矩阵: r a n d ( n ) ∗ ( b − a ) + a rand(n)*(b-a)+a rand(n)(ba)+a
均值为μ,方差为 σ 2 \sigma^2 σ2的n阶正态分布的随机矩阵: μ + σ ∗ r a n d n ( 5 ) μ+\sigma*randn(5) μ+σrandn(5)
.
例子:
在[20,50]均匀分布的5阶随机矩阵: r a n d ( 5 ) ∗ 30 + 20 rand(5)*30+20 rand(5)30+20
均值为0.6方差为0.1的5阶正态分布的随机矩阵: 0.6 + s q r t ( 0.1 ) ∗ r a n d n ( 5 ) 0.6+sqrt(0.1)*randn(5) 0.6+sqrt(0.1)randn(5)

b、用于专门学科的特殊矩阵

1)魔方矩阵magic(n) ——n≥3
每行每列及对角线上的元素之和相等

2)范德蒙德矩阵
vander(V)生成以向量V为基础的范德蒙德矩阵

3)希尔比特矩阵
hilb(n)
矩阵元素:h_ij=1/(i+j-1)
希尔伯特矩阵是一个条件数很差的矩阵

4)帕斯卡矩阵pascal(n)
有杨辉三角组成的矩阵——副对角线元素为(x+y)^n的展开式的系数(最高次系数为向量第一分量)

5)多项式的伴随矩阵
compan(p)——p为多项式的系数()

2.矩阵的结构变换

a、对角阵与三角阵
对角阵——除对角元素外的元素均为0,当对角元素相等时称为数量矩阵,特殊地,当对角线元素均为1时为单位矩阵

——提取矩阵对角线元素:
diag(A)提取主对角线元素,产生一个min(m,n)的列向量
diag(A,k)提取第k条对角线元素 ,k=0时为主对角线

——构造对角阵
diag(V)产生以V为主对角线元素的矩阵
diag(V,k)产生以V为第k条对角线的矩阵

三角阵——上三角(upper triangle),下三角(lower triangle)
triu(A) 提取A的上三角元素构成上三角矩阵
triu(A,k) 提取A的第k条及以上的元素构成上三角
tril(A),tril(A,k) 下三角

b、转置,旋转与翻转

1)转置
A’ ——当A为复数矩阵时A’既实现了转置也实现了共轭,A.'只实现转置
transpose(A) - 转置向量或矩阵,此 MATLAB 函数 返回 A 的非共轭转置,
2)旋转
rot90(A,k)将矩阵逆时针旋转90°的k倍,k=1时可省略k
3)翻转
左右——fliplr(A)
上下——flipud(A)

c、矩阵正交化
将A的列向量组正交化存入Q:Q=orth(A),则Q’Q=I

d、LU分解

[L,U]=lu(A) %L为下三角阵或其变换形式,U为上三角阵,LU=A
[L,U,P]=lu(A) %LU=PA

3.矩阵求值

1)矩阵求逆
A^(-1)——inv(A)
当A不是方阵或者A非满秩时,A不存在逆,但是若能找到与A的转置同型的矩阵B,满足ABA=A, BAB=B,则称B为A的伪逆,也称广义逆矩阵,求伪逆pinv(A)

注意:存在逆时,矩阵的逆与伪逆一般不相等

求逆的方式解线性方程组
Ax=b
x=A\b=inv(A)*b

2)行列式
方阵A的行列式|A|——det(A)
行列式|A|等于矩阵A的特征值之积

3)秩(奇异值)——rank(A)

4)迹—— trace(A)=矩阵的对角元素之和=矩阵的特征值之和(特征方程得)

5)特征值与特征向量eigenvalue ——eig(A)

eig(A),e=eig(A)——得到A的特征值构成的列向量 [P,E]=eig(A)——A的特征向量构成P的列向量,特征值构成对角阵E
[P,E]=eig(A,‘nobalance’)——上一个为先对A进行相似变换,这个没有进行相似变换直接求特征值与特征向量

>> A

A =

     1     2     3
     4     5     6
     7     8     9
>> trace(A)

ans =

    15

>> eig(A)

ans =

   16.1168
   -1.1168
   -0.0000

>> sum(eig(A))

ans =

   15.0000

6)向量和矩阵范数——用来度量向量在某种意义下的长度

a、向量的范数
2-范数——每个分量的平方和开方
1-范数——每个分量的绝对值之和
∞-范数——分量的绝对值取最大值

n=norm(A)——2-范数,欧几里得范数
n=norm(A,inf)——∞范数
n=norm(A,-inf)——求向量元素的绝对值最小值
n=norm(A,1)——1范数,向量元素的绝对值之和

n=norm(A,p)——p范数,norm(A,2)=norm(A)

x=[1,2,6,3,2];
>> n1=norm(x,1)

n1 =

    14

>> n2=norm(x)

n2 =

    7.3485

>> ninf=norm(x,inf)

ninf =

     6

b、矩阵的范数
||A||=max ||Av||,||v||=1 这样定义的范数称为从属于向量的范数

||A||_1= 每列元素的绝对值之和中取最大值
||A||_∞=每行元素的绝对值之和中取最大值
||A||_2=sqrt(λ),λ为A’A的最大特征值
||A||_F=矩阵元素的平方和开方

norm(A)=norm(A,2)——2范数
norm(A,inf)——∞范数
norm(A,1)——1范数
norm(A,‘fro’)——F范数

>> A=[1 3 2;6 5 0;7 1 5];
>> n2=norm(A)

n2 =

   11.0975

>> n1=norm(A,1)

n1 =

    14

>> ninf=norm(A,inf)

ninf =

    13

>> nF=norm(A,'fro')

nF =

   12.2474

7)矩阵的条件数
cond_p(A)=||A||_p·||A^(-1)||_p
条件数总是大于1的,越接近1则矩阵的性能越好,反之越差

性能Ax=b,系数矩阵A的个别元素的微小扰动会引起解的很大变化——A为病态矩阵,不会引起——良性矩阵.良性与病态是相对的,条件数就是用来刻画矩阵这种性能

cond(A)——求cond_2(A)
cond(A,p)——求cond_p(A)

六、程序设计

1.M文件
————由MATLAB命令组成

根据调用方式的不同分为两类:命令文件(脚本文件);函数文件,拓展名均为.m,但是区别在于
1)命令文件没有输入参数也没有输出参数,而函数文件可以带输入和输出参数;
2)命令文件对MATLAB工作空间的变量进行操作,执行结束后变量还在,而函数文件中定义的变量是局部变量,执行完毕后这些变量会被清除
3)命令文件输入文件名可以直接运行,但是函数文件不能直接运行,需要使用调用的方式

2.程序控制结构

顺序结构
数据输入 x=input(提示信息)
数据的输出 disp

选择结构

if end

if else end

if elseif else end

switch 表达式
case 表达式1 语句1(语句组)
case 表达式2 语句2

otherwise
语句n
end

注意:
switch语句和C语言的区别较大switch后的表达式为一个字符串或者标量,case后的表达式还可以是单元矩阵,单元矩阵时,switch表达式的值等于单元矩阵某个元素时,就执行该对应case语句。执行完毕与switch后的表达式匹配的case 后的语句,则进入switch语句后面的语句

try 语句组1
catch 语句组2
end
%当语句组1中出现问题则转去执行语句组2

循环结构

for i=1:1:10 语句 end

while 语句 end

注意:在for循环体里面改变循环变量对最终的结果没有影响,因为在i=1:1:10中会被重新赋值

clear
clc
s=0;
for i=1:100
    s=s+i^2;
end
s     % 338350


clear
clc
s=0;
for i=1:100
    s=s+i^2;
    i=i+5;
end
s     % 338350

3.函数

[x,y]=f(m,n)
函数调用f(a,b)

注意:
1.函数名应该和文件名一致,否则调用时以文件名为准
2.函数参数的可调性
函数所传入参数的数目是可调的,matlab预定义变量nargin和nargout分别记录调用该参数时的输入实参和输出实参个数,我们可以根据这两个变量来决定函数进行不同的处理
3.全局变量 global 变量名 (不推荐使用)

七、符号计算

在科学研究和工程应用中,除了大量的数值计算外,还有对符号对象进行的运算,即直接对抽象的符号对象进行计算,并将得到的结果以标准的符号形式来表示。符号计算可以获得比数值计算更一般的结果。
matlab提供了一种符号数据类型,相应的运算对象称为符号对象。在进行符号运算之前要先建立符号对象,然后才可以进行符号对象的运算。

符号对象的创建

——sym函数与syms命令

%建立符号变量与符号常量
%sym函数
>> x=sym('x')  %定义符号变量
 
x =
 
x
 
>> k=sym('8')  %定义符号常量
 
k =
 
8
 
>> x+k
 
ans =
 
x + 8
 
>> whos
  Name      Size            Bytes  Class    Attributes

  ans       1x1                 8  sym                
  k         1x1                 8  sym                
  x         1x1                 8  sym        
 
 %syms命令——sym函数一次只能定义一个符号变量,使用syms命令一次可以定义多个符号变量,格式 syms a b c d...
 
>> syms x y z
>> whos
  Name      Size            Bytes  Class    Attributes

  x         1x1                 8  sym                
  y         1x1                 8  sym                
  z         1x1                 8  sym      
 

含有符号对象的表达式为符号表达式,符号对象的四则运算和数值运算一样。

符号表达式的化简
simplify(s) %s为符号表达式

符号对象的替换

y1=subs(y,x1) %用x1替换y中的默认变量
y1=subs(y,x,x1) %用x1替换y中的变量x
x是符号对象,x1可以是符号对象也可以是数值变量或表达式

>> syms x y
>> y=cos(x)
 
y =
 
cos(x)
 
>> syms z
>> y1=subs(y,z)
 
y1 =
 
cos(z)
 
>> y2=subs(y,x,2)
 
y2 =
 
cos(2)
 
>> plot(2,y2,'r*')
>> t=linspace(0,2*pi,100);
>> e=subs(y,t);
>> plot(t,e)

在这里插入图片描述

在这里插入图片描述

符号函数
符号对象在微积分中应用很多,常见的符号函数有求极限limit,求导diff,求积分int,求级数symsum,求泰勒级数——taylor,代数方程/方程组solve。
详见matlab微积分应用篇

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB基础篇——基本语法 的相关文章

  • 黑白随机着色的六角格子

    我正在尝试绘制一个 10 000 x 10 000 随机半黑半白的六边形格子 我不知道如何将该格子的六边形随机填充为黑色和白色 这是我真正想要从这段代码中得到的示例 但我无法做到 https i stack imgur com RkdCw
  • matlab中的排列函数是如何工作的

    这是一个有点愚蠢的问题 但我似乎无法弄清楚排列在 matlab 中是如何工作的 以文档为例 A 1 2 3 4 permute A 2 1 ans 1 3 2 4 到底是怎么回事 这如何告诉 matlab 3 和 2 需要交换 哇 这是我迄
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • 从开始/结束索引列表创建向量化数组

    我有一个两列矩阵M包含一堆间隔的开始 结束索引 startInd EndInd 1 3 6 10 12 12 15 16 如何生成所有区间索引的向量 v 1 2 3 6 7 8 9 10 12 15 16 我正在使用循环执行上述操作 但我想
  • 图像处理 - 使用 opencv 进行服装分割

    我正在使用 opencv 进行服装特征识别 第一步 我需要通过从图像中移除脸部和手来分割 T 恤 任何建议表示赞赏 我建议采用以下方法 Use 阿德里安 罗斯布鲁克的用于检测皮肤的皮肤检测算法 谢谢罗莎 格隆奇以获得他的评论 在方差图上使用
  • ROC曲线和libsvm

    给定一条 ROC 曲线plotroc m see here http www csie ntu edu tw cjlin libsvmtools roc curve for binary svm 理论问题 如何选择要使用的最佳阈值 编程问题
  • @(t)在Matlab中是什么意思? [复制]

    这个问题在这里已经有答案了 正如标题所示 考虑到下面的上下文 t 在 Matlab 中到底意味着什么 computeNumericalGradient 是一个函数 cofiCostFunc 也是一个接受一堆参数的函数 问题是 t 对 cof
  • Matlab dec2bin 给出错误的值

    我正在使用 Matlab 的 dec2bin 将十进制数转换为二进制字符串 但是 我得到了错误的结果 例如 gt gt dec2bin 13339262925365424727 ans 101110010001111010010100111
  • 快速有效地计算已知特征值的特征向量

    我的问题的简短版本 计算矩阵特征向量的最佳方法是什么A 如果我们已经知道属于特征向量的特征值呢 更长的解释 我有一个很大的随机矩阵A由于它是随机的 因此具有非负左特征向量x 这样A Tx x 我正在寻找快速有效的方法来数值计算这个向量 最好
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • Matlab:如何在没有颜色分级的情况下绘图?

    我的朋友制作了一个脚本来处理大量数据并绘制各种图表 但是当他运行脚本时 图表根据图例具有不同的颜色 当我这样做时 所有图表都相似 颜色渐变从黑色到红色的 见图 为什么不同以及如何获得不同颜色的图表 带有颜色分级图的 2D 绘图 figure
  • 各向异性扩散二维图像[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在二维图像上使用各向异性扩散 我想使用 python 但不介意使用 matlab 或 c 他们有我
  • 给定三点计算仿射变换

    我有两张图像 并使用筛选找到了三个相似的二维点 我需要计算图像之间的仿射变换 不幸的是 我错过了讲座 而且那里的信息对我来说有点密集 计算这个 2x3 矩阵的一般方法是什么 我有 2x3 矩阵 x1 y1 x2 y2 x3 y3 中的点矩阵
  • MATLAB - 避免循环基于其他向量的元素创建矩阵

    假设我有向量x y z 长度n m l 我想创建一个细胞矩阵Q使用这些向量的元素 天真的人们可以像这样使用 for 循环 for i 1 n for j 1 m for k 1 l Q i j k someFunction x i y j
  • 如何将 RGB 图像转换为灰度图像但保留一种颜色?

    我正在尝试创建类似的效果Sin City或其他电影 它们删除图像中除一种颜色之外的所有颜色 我有一个 RGB 图像 我想将其转换为灰度图像 但我想保留一种颜色 这是我的照片 我想保留红色 其余的应该是灰度的 这是我的代码到目前为止输出的内容
  • 如何在 Matlab 中绘制连通性/邻接矩阵图?

    我想在 MATLAB 中绘制网络 电网 的结构图 我有一个包含每个分支的往返节点的列表 我没有节点的坐标 并且每次模拟的系统拓扑都会发生变化 我还需要能够为各种线路 节点分配不同的颜色 以可视化电压问题或过载等 类似于我使用传记 下面的代码
  • 一次设置多个字段/向单元结构添加新字段

    我有一个 1xn 结构 该结构包含一些带有数字单元格的字段 并非每个结构都具有相同的字段 所以我想将缺少的字段添加到结构中 但我没明白 Mimimal example I have same cells imported from csv
  • Matlab中反转一位逻辑位

    是否存在更好的方法来反转 X 的元素 gt gt X dec2bin 10 X 1010 我这样做了 x i num2str 1 str2num x i 如果我理解正确的话 你想将一位设置为 1 使用bitset bitset x bitN

随机推荐

  • PHP加密方式

    PHP加密方式分为单项散列加密 对称加密 非对称加密这几类 像常用的MD5 hash crypt sha1这种就是单项散列加密 单项散列加密是不可逆的 像URL编码 base64编码这种就是对称加密 是可逆的 就是说加密解密都是用的同一秘钥
  • Unity3D 5 官方教程:地形设置

    地形工具栏的最后一个工具是设置 设置检视器 设置被提供用于如下描述的一些全局使用和渲染选项 基本地形 属性 功能 Draw 切换地形渲染开关 Pixel Error 在地形贴图 高度图 纹理等等 与生成地形之间的贴图精确度 更高的值为更低的
  • 剑指offer--顺时针打印矩阵

    题目描述 输入一个矩阵 按照从外向里以顺时针的顺序依次打印出每一个数字 例如 如果输入如下矩阵 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1 2 3 4 8 12 16 15 14 13
  • stop容器

    docker ps 查看所有正在运行容器 docker stop containerId containerId 是容器的ID docker ps a 查看所有容器 docker ps a q 查看所有容器ID docker stop do
  • Google Protocol Buffer 的使用和原理

    Google Protocol Buffer 的使用和原理 刘 明 软件工程师 上海交大电子与通信系 简介 Protocol Buffers 是一种轻便高效的结构化数据存储格式 可以用于结构化数据串行化 很适合做数据存储或 RPC 数据交换
  • 程序设计十二:线上聊天室(网络编程+多线程)

    程序设计十二 网络编程 1 Manager类 使用Manager类实现服务器功能 recv 内部方法接收消息 broadcast 方法向所有用户广播 private chat 方法发送私信 定向转发 chat 方法实现收发消息的完整过程 并
  • R包——maftools可视化神器

    参考 http bioconductor org packages release bioc vignettes maftools inst doc maftools html 目录 介绍 准备 格式转换 总体分析框架 maftools安装
  • 每个工程师都应该知道的 5 个射频发射器测量指标(自NI官网翻译)

    概述 射频发射器是现代通信的重要组成部分 射频发射器由核心射频组件设计和组装而成 具有多种不同的形式和应用 我们经常想到无线通信中的射频发射器 但这个概念同样适用于有线应用 如有线电视 蜂窝电话 雷达 军事通信 航空电子设备 无线局域网 调
  • 第三节课笔记(条件语句与循环语句)

    条件语句与循环语句 一 数据类型 标准数据类型 Python3中有六个标准的数据类型 Number 数字 支持int float bool complex 复数 Sring 字符串 Python中的字符串用单引号 或双引号 括起来 同时使用
  • 18650锂电池保护板接线图_锂电池保护板的过流保护测试方案

    电池保护板 顾名思义锂电池保护板主要是针对可充电 一般指锂电池 起保护作用的集成电路板 锂电池 可充型 之所以需要保护 是由它本身特性决定的 由于锂电池本身的材料决定了它不能被过充 过放 过流 短路及超高温充放电 因此锂电池锂电组件总会跟着
  • java long 详解_JavaSE之Long 详解 Long的方法简介以及用法

    基本功能 Long 类在对象中包装了基本类型 long 的值 每个 Long 类型的对象都包含一个 long 类型的字段 static long MAX VALUElong 8个字节 最大值2 63 1 十六进制 0x80000000000
  • android Intent启动flag

    android Intent启动flag 分类 android框架 2013 10 30 14 47 1318人阅读 评论 0 收藏 举报 FLAG GRANT READ URI PERMISSION 如果设置这个标记 Intent的接受者
  • react中@withrouter_React系列十 - 高阶组件以及组件补充

    源自 coderwhy 一 高阶组件 1 1 认识高阶组件 什么是高阶组件呢 相信很多同学都听说过 也用过 高阶函数 它们非常相似 所以我们可以先来回顾一下什么是 高阶函数 高阶函数的维基百科定义 至少满足以下条件之一 接受一个或多个函数作
  • Qt+webservice的多线程实现

    原文地址 https blog csdn net qq 29176963 article details 82776588 相关文章 1 Qt 之 QtSoap 访问WebService https blog csdn net liang1
  • linux lvm在线扩容

    步骤 创建新的PV 将新的PV加入到当前VG 扩容现有LV 扩容文件系统 1 fdisk dev sda n 新增 p 主分区 大小自己调整 可以默认 记得用 t 转换格式为 8e lvm分区号 最后 w 保存 2 partprobe de
  • GitHub访问量超百万的阿里大佬总结图解Java小册火了,完整版限时开源

    什么是Java Java是Sun Microsystems于1995年首次发布的一种编程语言和计算平台 Java是快速 安全和可靠的 从笔记本电脑到数据中心 从游戏机到科学超级计算机 从手机到互联网 Java无处不在 Java的特点 Jav
  • npm依赖更新无效

    项目场景 项目是使用ice 2 0 0搭建的react项目 项目需要替换新版本的sdk 使用npm进行对应sdk的版本升级 问题描述 卸载sdk tnpm uninstall tds sdk 安装最新版本sdk tnpm i tds sdk
  • 互转(经纬度、地心坐标、东北天坐标)

    Part1三种坐标系介绍 经纬度坐标 假设空间某点P 用经纬度表示的话 你们B代表纬度 L代表经度 H代表大地高 纬度B P点沿着地球法线方向与赤道面的夹角 向北为正称为北纬 0 90 向南为负称为南纬 0 90 实际表示可以用 90 90
  • Error:(6, 46) java: 程序包org.springframework.context.annotation不存在

    IDEA 莫名其妙突然出现出错 Error 6 46 java 程序包org springframework context annotation不存在 经本地测试采用如下方法可以解决 1 修改在File gt settings gt Bu
  • MATLAB基础篇——基本语法

    MATLAB基础篇 基本语法 一 数据类型与变量 数据类型 变量 二 矩阵 字符串 三 运算 四 MATLAB常用函数 五 矩阵分析与处理 六 程序设计 七 符号计算 MATLAB Matrix laboratory 一般操作 1 操作界面