【MATLAB第73期】# 源码分享

2023-11-05

【MATLAB第73期】# 源码分享 | 基于MATLAB的不同类型数据排列方式合集

学习参考链接

1.对数组的行进行排序(单元格/字符串/类别/表)
2.按字符代码对文本进行排序
3.对文件名、文件夹名或文件路径进行排序
4.对字符串/单元格/分类数组的元素进行排序

一、改进后的排列方式

X = {'A2','X';'A10','Y';'A10','X';'A1','X'};
sortrows(X) % 错误排序
    {'A1' }    {'X'}
    {'A10'}    {'X'}
    {'A10'}    {'Y'}
    {'A2' }    {'X'}
natsortrows(X) % 正确排序
    {'A1' }    {'X'}
    {'A2' }    {'X'}
    {'A10'}    {'X'}
    {'A10'}    {'Y'}

1.要排序的数组

第一个输入必须是以下数组类型之一:

*字符矩阵,
*字符行矢量的单元阵列,
*一个单元格数组,其列仅由字符行组成
矢量或纯数字标量:

第一个输入必须是矩阵(即仅二维)。

排序后的数组将作为第一个输出参数返回,例如:

A = {'B','2','X';'A','100','X';'B','10','X';'A','2','Y';'A','20','X'};
natsortrows(categorical(A)) %
     A      2        Y 
     A      20       X 
     A      100      X 
     B      2        X 
     B      10       X 

2.小数表达式

B = {'1.3','X';'1.10','X';'1.2','X'}
natsortrows(B)%默认情况下仅匹配整数。
    {'1.2' }    {'X'}
    {'1.3' }    {'X'}
    {'1.10'}    {'X'}
natsortrows(B, '\d+\.?\d*')%匹配小数。
    {'1.10'}    {'X'}
    {'1.2' }    {'X'}
    {'1.3' }    {'X'}

3.指定要排序的列

如果需要,可以使用以下方法之一指定要排序的列:

输入数组各列索引的逻辑矢量。
输入数组各列的索引的数字矢量,其中,正整数按升序对相应列进行排序
负整数按降序对相应列进行排序。这对应于|SORTROWS|columns|选项。
例如,第二列按升序排序,第三列按降序排序:

sortrows(A, [2,-3]) %编号顺序错误。
    {'B'}    {'10' }    {'X'}
    {'A'}    {'100'}    {'X'}
    {'A'}    {'2'  }    {'Y'}
    {'B'}    {'2'  }    {'X'}
    {'A'}    {'20' }    {'X'}
natsortrows(A, [], [2,-3])%正确的数字顺序。
    {'A'}    {'2'  }    {'Y'}
    {'B'}    {'2'  }    {'X'}
    {'B'}    {'10' }    {'X'}
    {'A'}    {'20' }    {'X'}
    {'A'}    {'100'}    {'X'}

4.指定排序方向

|SORTROWS||direction|选项是受支持的,其中字符向量|‘ascend’|、|‘descend’|和/或|‘ignore’|指定要排序的列的排序方向(这意味着
列或由|column|或|vars|选项指定的列)。

在这些示例中,第二列按升序排序,第三列按降序排序:

natsortrows(A, [], [2,3], {'ascend','descend'})
    {'A'}    {'2'  }    {'Y'}
    {'B'}    {'2'  }    {'X'}
    {'B'}    {'10' }    {'X'}
    {'A'}    {'20' }    {'X'}
    {'A'}    {'100'}    {'X'}

natsortrows(A, [], [false,true,true], {'ascend','descend'})
    {'A'}    {'2'  }    {'Y'}
    {'B'}    {'2'  }    {'X'}
    {'B'}    {'10' }    {'X'}
    {'A'}    {'20' }    {'X'}
    {'A'}    {'100'}    {'X'}
natsortrows(A, [], {'ignore','ascend','descend'})
    {'A'}    {'2'  }    {'Y'}
    {'B'}    {'2'  }    {'X'}
    {'B'}    {'10' }    {'X'}
    {'A'}    {'20' }    {'X'}
    {'A'}    {'100'}    {'X'}

5.表行名称

|SORTROWS||表支持“RowNames”|选项,可以作为literal text |‘RowNames’|或作为表的第一个维度的名称
即|SORTROWS||rowDimName|选项)。

T = cell2table(A,'RowNames',{'R20','R1','R10','R2','R9'},'VariableNames',{'V1','V2','V3'})
natsortrows(T, [], 'RowNames')
            V1        V2        V3  
           _____    _______    _____

    R1     {'A'}    {'100'}    {'X'}
    R2     {'A'}    {'2'  }    {'Y'}
    R9     {'A'}    {'20' }    {'X'}
    R10    {'B'}    {'10' }    {'X'}
    R20    {'B'}    {'2'  }    {'X'}
natsortrows(T, [], 'Row') %第一维度名称
            V1        V2        V3  
           _____    _______    _____

    R1     {'A'}    {'100'}    {'X'}
    R2     {'A'}    {'2'  }    {'Y'}
    R9     {'A'}    {'20' }    {'X'}
    R10    {'B'}    {'10' }    {'X'}
    R20    {'B'}    {'2'  }    {'X'}

6.表变量名称

|SORTROWS||vars|选项支持用于表,即:
表变量中索引的逻辑或数字矢量。
要排序的一个表变量的名称。
要排序的表变量的一个或多个名称的单元格数组。

natsortrows(T, [], {'V2','V3'},{'ascend','descend'})
            V1        V2        V3  
           _____    _______    _____

    R2     {'A'}    {'2'  }    {'Y'}
    R20    {'B'}    {'2'  }    {'X'}
    R10    {'B'}    {'10' }    {'X'}
    R9     {'A'}    {'20' }    {'X'}
    R1     {'A'}    {'100'}    {'X'}
natsortrows(T, [], [2,3], {'ascend','descend'})
            V1        V2        V3  
           _____    _______    _____

    R2     {'A'}    {'2'  }    {'Y'}
    R20    {'B'}    {'2'  }    {'X'}
    R10    {'B'}    {'10' }    {'X'}
    R9     {'A'}    {'20' }    {'X'}
    R1     {'A'}    {'100'}    {'X'}

7.单元格数组中的数字标量

对单元格数组进行排序时,只由数字组成的任何列或者可以通过选择|‘SortNum’|选项对逻辑标量进行排序。
混合单元阵列的示例,其中第1列完全由字符行矢量和第二列完全由数字标量组成:

C = {'A2',2;'A10',1;'A2',1}
natsortrows(C,[],'SortNum')
    {'A2' }    {[1.00]}
    {'A2' }    {[2.00]}
    {'A10'}    {[1.00]}

8.可选参数

进一步的输入直接传递到|NATSORT|,从而进行控制区分大小写、排序方向和其他选项。请参阅|NATSORT|有关支持选项的解释和示例的帮助:

D = {'B','X';'10','X';'1','X';'A','X';'2','X'}
natsortrows(D, [], 'descend')
    {'B' }    {'X'}
    {'A' }    {'X'}
    {'10'}    {'X'}
    {'2' }    {'X'}
    {'1' }    {'X'}
natsortrows(D, [], 'char<num')

    {'A' }    {'X'}
    {'B' }    {'X'}
    {'1' }    {'X'}
    {'2' }    {'X'}
    {'10'}    {'X'}

9.排序索引

第二个输出参数是排序索引|ndx|的数字数组,使得|Y=X(ndx,:)|其中|Y=natsortrows(X)|:

E = {'abc2xyz','Y';'abc10xy99','X';'abc2xyz','X';'abc1xyz','X'}
[out,ndx] = natsortrows(E)
out =
    {'abc1xyz'  }    {'X'}
    {'abc2xyz'  }    {'X'}
    {'abc2xyz'  }    {'Y'}
    {'abc10xy99'}    {'X'}


ndx =
          4.00
          3.00
          1.00
          2.00

10.调试阵列

第三个输出是单元阵列的单元矢量,其中单元阵列对应于输入单元阵列|X|的列。
单元格数组包含所有匹配的数字(转换为使用指定|SSCANF|格式的数字)和所有非数字子字符串。这些单元阵列有助于确认小数表达式正在正确识别数字。

[~,~,dbg] = natsortrows(E);
    {'abc'}    {[ 2.00]}    {'xyz'}    {0×0 double}
    {'abc'}    {[10.00]}    {'xy' }    {[   99.00]}
    {'abc'}    {[ 2.00]}    {'xyz'}    {0×0 double}
    {'abc'}    {[ 1.00]}    {'xyz'}    {0×0 double}
dbg{:}
    {'Y'}
    {'X'}
    {'X'}
    {'X'}

11.小数表达式:十进制小数,E表示法,+/-符号。

|NATSORTROWS|数字匹配可以自定义为检测数字十进制分数、E表示法、+/-号、二进制/十六进制或其他所需的功能。使用适当的小数表达式,有关详细信息和示例,请参见|NATSORT|。

F = {'v10.2','b'; 'v2.5','b'; 'v2.40','a'; 'v1.9','b'}
natsortrows(F) %默认匹配整数,例如版本号。
    {'v1.9' }    {'b'}
    {'v2.5' }    {'b'}
    {'v2.40'}    {'a'}
    {'v10.2'}    {'b'}
natsortrows(F,'\d+\.?\d*') %与小数部分匹配
    {'v1.9' }    {'b'}
    {'v2.40'}    {'a'}
    {'v2.5' }    {'b'}
    {'v10.2'}    {'b'}

12.交互式小数表达式工具

小数表达式功能强大且紧凑,但正确使用它们并不总是那么容易。一个帮助是下载交互式工具https://www.mathworks.com/matlabcentral/fileexchange/48930|IREGEXP|
它可以让您快速尝试不同的小数表达式,并查看所有在键入时显示和更新输出。
https://www.mathworks.com/help/matlab/ref/regexp.html|REGEXP|

二、基础排列方式

1.对矩阵行排序

创建矩阵,并基于第一列中的元素按升序对矩阵行进行排序。当第一列包含重复的元素时,sortrows 会基于第二列中的元素进行排序。对于第二列中的重复元素,sortrows 会基于第三列进行排序,依此类推。

rng default;
A = floor(rand([6 7])*100);
A(1:4,1) = 95;  A(5:6,1) = 76;  A(2:4,2) = 7;  A(3,3) = 48
A = 6×7

    95    27    95    79    67    70    69
    95     7    48    95    75     3    31
    95     7    48    65    74    27    95
    95     7    14     3    39     4     3
    76    15    42    84    65     9    43
    76    97    91    93    17    82    38

B = sortrows(A) 
B = 6×7

    76    15    42    84    65     9    43
    76    97    91    93    17    82    38
    95     7    14     3    39     4     3
    95     7    48    65    74    27    95
    95     7    48    95    75     3    31
    95    27    95    79    67    70    69

基于第二列中的值对 A 的行排序。当指定的列包含重复元素时,对应的行将保持其原始顺序。

C = sortrows(A,2)
C = 6×7

95     7    48    95    75     3    31
95     7    48    65    74    27    95
95     7    14     3    39     4     3
76    15    42    84    65     9    43
95    27    95    79    67    70    69
76    97    91    93    17    82    38

基于第一列中的元素对 A 的行进行排序,如果第一列中包含相同元素,则按第七列进行排序。

D = sortrows(A,[1 7])
D = 6×7

76    97    91    93    17    82    38
76    15    42    84    65     9    43
95     7    14     3    39     4     3
95     7    48    95    75     3    31
95    27    95    79    67    70    69
95     7    48    65    74    27    95

基于第四列中的元素以降序对 A 的行进行排序,并显示输出向量 index 以查看行是如何重新排列的。

[E,index] = sortrows(A,4,‘descend’)
E = 6×7

95     7    48    95    75     3    31
76    97    91    93    17    82    38
76    15    42    84    65     9    43
95    27    95    79    67    70    69
95     7    48    65    74    27    95
95     7    14     3    39     4     3

index = 6×1

 2
 6
 5
 1
 3
 4

2.对元胞数组行排序

创建一个 6×2 字符向量元胞数组,并对其行进行排序。结果是一个同时按国家/地区和名称排序的字母顺序列表。

A = {‘Germany’ ‘Lukas’; ‘USA’ ‘William’; ‘USA’ ‘Andrew’; …
‘Germany’ ‘Andreas’; ‘USA’ ‘Olivia’; ‘Germany’ ‘Julia’}
A = 6x2 cell
{‘Germany’} {‘Lukas’ }
{‘USA’ } {‘William’}
{‘USA’ } {‘Andrew’ }
{‘Germany’} {‘Andreas’}
{‘USA’ } {‘Olivia’ }
{‘Germany’} {‘Julia’ }

B = sortrows(A)
B = 6x2 cell
{‘Germany’} {‘Andreas’}
{‘Germany’} {‘Julia’ }
{‘Germany’} {‘Lukas’ }
{‘USA’ } {‘Andrew’ }
{‘USA’ } {‘Olivia’ }
{‘USA’ } {‘William’}

按照降序顺序,先对国家/地区进行排序,然后对名称进行排序。

C = sortrows(A,[1 2],{‘ascend’ ‘descend’})
C = 6x2 cell
{‘Germany’} {‘Lukas’ }
{‘Germany’} {‘Julia’ }
{‘Germany’} {‘Andreas’}
{‘USA’ } {‘William’}
{‘USA’ } {‘Olivia’ }
{‘USA’ } {‘Andrew’ }

3.对表行排序

按变量值对表行进行排序。

创建一个表,其中包含列出五位病患信息的四个变量。

LastName = {‘Smith’;‘Johnson’;‘Williams’;‘Jones’;‘Brown’};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

tblA = table(Age,Height,Weight,BloodPressure,‘RowNames’,LastName)
tblA=5×4 table
Age Height Weight BloodPressure
___ ______ ______ _____________

Smith       38       71       176       124     93  
Johnson     43       69       163       109     77  
Williams    38       64       131       125     83  
Jones       40       67       133       117     75  
Brown       49       64       119       122     80  

对该表的行排序。sortrows 函数首先按变量 Age 以升序对行进行排序,然后按变量 Height 对具有相等年龄的两行进行排序。

tblB = sortrows(tblA)
tblB=5×4 table
Age Height Weight BloodPressure
___ ______ ______ _____________

Williams    38       64       131       125     83  
Smith       38       71       176       124     93  
Jones       40       67       133       117     75  
Johnson     43       69       163       109     77  
Brown       49       64       119       122     80  

4.按行名称对表行排序

创建一个表,其中包含列出五位病患信息的四个变量。

LastName = {‘Smith’;‘Johnson’;‘Williams’;‘Jones’;‘Brown’};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

tblA = table(Age,Height,Weight,BloodPressure,‘RowNames’,LastName)
tblA=5×4 table
Age Height Weight BloodPressure
___ ______ ______ _____________

Smith       38       71       176       124     93  
Johnson     43       69       163       109     77  
Williams    38       64       131       125     83  
Jones       40       67       133       117     75  
Brown       49       64       119       122     80  

基于行名称按升序对表行进行排序,并返回描述行重新排列方式的索引向量。

[tblB,index] = sortrows(tblA,‘RowNames’)
tblB=5×4 table
Age Height Weight BloodPressure
___ ______ ______ _____________

Brown       49       64       119       122     80  
Johnson     43       69       163       109     77  
Jones       40       67       133       117     75  
Smith       38       71       176       124     93  
Williams    38       64       131       125     83  

index = 5×1

 5
 2
 4
 1
 3

5.按变量对表行进行排序

创建一个表,其中包含列出五位病患信息的四个变量。

LastName = {‘Sweet’;‘Jacobson’;‘Wang’;‘Joiner’;‘Berger’};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

tblA = table(Age,Height,Weight,BloodPressure,‘RowNames’,LastName)
tblA=5×4 table
Age Height Weight BloodPressure
___ ______ ______ _____________

Sweet       38       71       176       124     93  
Jacobson    43       69       163       109     77  
Wang        38       64       131       125     83  
Joiner      40       67       133       117     75  
Berger      49       64       119       122     80  

按 Height 以升序对表行排序,然后按 Weight 以降序排序。

tblB = sortrows(tblA,{‘Height’,‘Weight’},{‘ascend’,‘descend’})
tblB=5×4 table
Age Height Weight BloodPressure
___ ______ ______ _____________

Wang        38       64       131       125     83  
Berger      49       64       119       122     80  
Joiner      40       67       133       117     75  
Jacobson    43       69       163       109     77  
Sweet       38       71       176       124     93  

6.包含缺失元素的表

创建一个表,其中包含列出五位病患信息的四个变量。Weight 变量包含缺失值。

LastName = {‘Sweet’;‘Jacobson’;‘Wang’;‘Joiner’;‘Berger’};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;NaN;131;133;NaN];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];
tblA = table(Age,Height,Weight,BloodPressure,‘RowNames’,LastName)
tblA=5×4 table
Age Height Weight BloodPressure
___ ______ ______ _____________

Sweet       38       71       176       124     93  
Jacobson    43       69       NaN       109     77  
Wang        38       64       131       125     83  
Joiner      40       67       133       117     75  
Berger      49       64       NaN       122     80  

按 Weight 以升序对表行进行排序,将包含 NaN 的行放在最前面。

tblB = sortrows(tblA,‘Weight’,‘MissingPlacement’,‘first’)
tblB=5×4 table
Age Height Weight BloodPressure
___ ______ ______ _____________

Jacobson    43       69       NaN       109     77  
Berger      49       64       NaN       122     80  
Wang        38       64       131       125     83  
Joiner      40       67       133       117     75  
Sweet       38       71       176       124     93  

7.对时间表行进行排序

创建一个时间表,并按行时间对行进行排序。

TimeDuration = [hours(3) hours(2) hours(1) hours(5) hours(6)]';
TT = timetable(TimeDuration,[98;97.5;97.9;98.1;101],[120;111;119;117;118]);

B = sortrows(TT,‘TimeDuration’)
B=5×2 timetable
TimeDuration Var1 Var2
____________ ____ ____

1 hr            97.9    119 
2 hr            97.5    111 
3 hr              98    120 
5 hr            98.1    117 
6 hr             101    118 

三、代码获取

CSDN后台私信回复“73期”即可。

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

【MATLAB第73期】# 源码分享 的相关文章

  • 计算数组中接下来的 n 个元素的乘积

    我想计算下一个的乘积n矩阵的相邻元素 号码n要相乘的元素数应在函数的输入中给出 例如 对于此输入 我应该从第一个开始计算每 3 个连续元素的乘积 p ind max product 1 2 2 1 3 1 3 这给出了 1 2 2 2 2
  • Matlab - 如果值包含xxx,则删除元胞数组中的行

    在 Matlab 中 如何删除包含变量字符串的元胞数组中的元胞 假设我的元胞数组是 C svnTrunk RadarLib radarlb utilities scatteredInterpolant m C svnTrunk RadarL
  • 在 matlab 中求 3d 峰的体积

    现在我有一个带有峰值的 3D 散点图 我需要找到其体积 我的数据来自图像 因此 x 和 y 值表示 xy 平面上的像素位置 z 值是每个像素的像素值 这是我的散点图 scatter3 x y z 20 z filled 我试图找到数据峰值的
  • Matlab:保存后翻转图例顺序和图例重叠图

    我正在尝试根据以下内容反转我的图例条目顺序matlab条形图中图例颜色的逆序 https stackoverflow com questions 31178005 reverse ordering of legend colors in m
  • Matlab 字段名索引[重复]

    这个问题在这里已经有答案了 所以我有一个包含多个表的元胞数组 我试图访问表的第一个列名称 c table1 table2 table3 以下两行都给了我错误 fieldnames c 1 1 fieldnames c 1 1 Error i
  • 如何在没有安装Visual Studio的另一台机器上使用Visual Studio生成的dll?

    我已经在 Visual Studio 2012 中生成了动态库 我想在另一台机器上使用该库 但我不想在远程机器上安装 Visual Studio 我有 mex 库和 dll 我想运行一个使用这两个库的脚本 当我运行脚本时 出现以下错误 缺少
  • MATLAB 特征函数

    我很好奇哪里可以找到完整的描述FEATURE功能 它接受哪些论点 没有找到文档 我只听说过memstats and getpid 还要别的吗 gt gt which feature built in undocumented 注意 更完整的
  • 两个向量之间的欧氏距离(单行矩阵)

    我有两个向量 单行矩阵 假设我们已经知道长度len A x1 x2 x3 x4 x5 B y1 y2 y3 y4 y5 计算它们之间的欧几里德距离最快的方法是什么 我的第一次尝试是 diff A B sum 0 for column 1 l
  • MATLAB 教程中的 SIFT 实现

    我正在寻找 MATLAB 中的一些基本 SIFT 实现 我需要从第一原则来写它 另外 我正在寻找一些可以解释程序中发生的事情的内容 Vedali 的代码和 David Lowe 的代码超出了我的理解范围 如果您是 Matlab 用户 您一定
  • 黑白随机着色的六角格子

    我正在尝试绘制一个 10 000 x 10 000 随机半黑半白的六边形格子 我不知道如何将该格子的六边形随机填充为黑色和白色 这是我真正想要从这段代码中得到的示例 但我无法做到 https i stack imgur com RkdCw
  • 如何在 matlab 中创建由多个 3d 图像数据数组组成的数组

    我正在阅读 15 张图片imagedata imread imagename jpg 它的大小总是320 by 320 by 3 如何将数据放入数组中 使用 for for 循环 以便在访问新数组的第一个元素时获得输入的第一个图像的 RGB
  • 如何在文本集中创建所有字符组合?

    例如 我有这样的文本集 第 1 栏 a b 第 2 栏 l m n 第 3 栏 v w x y 我想将它们组合起来以获得如下输出 alv alw alx aly amv amw amx amy 这将输出 24 种文本组合 如果我只使用前两列
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • ROC曲线和libsvm

    给定一条 ROC 曲线plotroc m see here http www csie ntu edu tw cjlin libsvmtools roc curve for binary svm 理论问题 如何选择要使用的最佳阈值 编程问题
  • Matlab 的 imresize 函数中用于插值的算法是什么?

    我正在使用 Matlab Octaveimresize 对给定的二维数组重新采样的函数 我想了解如何使用特定的插值算法imresize works 我在Windows上使用八度 e g A 1 2 3 4 是一个二维数组 然后我使用命令 b
  • MATLAB 类的 Description 和DetailedDescription 属性

    内置 MATLAB 类具有 Description 和 DetailedDescription 属性的值 gt gt handle ans meta class handle Package meta Properties Name han
  • MATLAB:在不使用循环的情况下提取矩阵的多个部分

    我有一个巨大的 2D 矩阵 我想从中提取 15 个不同的 100x100 部分 我有两个向量 x 和 y 其中保存了零件的左上角索引 我用过这样的东西 result cam1 x 1 end x 1 end 99 y 1 end y 1 e
  • matlab中求和函数句柄

    Hi我试图对两个函数句柄求和 但它不起作用 例如 y1 x x x y2 x x x 3 x y3 y1 y2 我收到的错误是 对于 function handle 类型的输入参数 未定义函数或方法 plus 这只是一个小例子 实际上我实际
  • MATLAB 列含义的内存分析

    我正在使用 MATLAB 配置文件来使用命令观察内存 profile memory on profile clear my code profile report and i got this table 1 我想问一下什么意思 已分配内存
  • 如何使用SIFT算法计算两幅图像的相似度?

    我已经用过SIFT http en wikipedia org wiki Scale invariant feature transform实施安德里亚 维达尔迪 http www vlfeat org overview sift html

随机推荐

  • 计及电池储能寿命损耗的微电网经济调度(matlab代码)

    目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考文献 考虑寿命损耗的微网电池储能容量优化配置 模型 以购售电成本 燃料成本和储能寿命损耗成本三者之和为目标函数 创新考虑储能寿命损耗约束 放电深度约束和储
  • 分立式BUCK电路原理与制作持续更新

    目录 一 分立式BUCK电路总体原理图 二 BUCK电路与LDO的区别 三 BUCK电路为什么要加电感 四 BUCK电路要加续流二极管 五 BUCK电路导通与断开的回路 六 电源公式的中的几个表示方式 1 输入功率用Pin表示 2 输出功率
  • springboot+vue商城项目实战-springboot后端搭建

    搭建Spring Boot Vue商城后端项目 要搭建Spring Boot Vue商城后端项目 你需要掌握一系列的技术背景 下面我将为你介绍 开发这种项目所需的主要技术要求 Spring Boot框架 Spring Boot是一个开发Ja
  • redis常见操作命令-list

    1 将1个或者多个的value压入key的表头 LPUSH key value value 127 0 0 1 6379 gt LPUSH list abc integer 1 127 0 0 1 6379 gt LGET list err
  • Nginx设置成网站为https

    首先 获取SSL证书 我的证书是阿里云获取的 免费版dv证书 一年有效期 购买后 自动跳转到证书控制台 点击申请 然后选择如下设置 打码内容填入自己的个人信息 等待审核通过 我大概等了半小时 然后下载证书 解压 获得以下两个文件 在服务器的
  • 多益网络人工智能面试和入职问题

    以下几点是我在技术面试中技术hr问到的一些问题 1 简单自我介绍 2 网测的智商检测问题怎么看 3 分别介绍两个项目 4 基于第一个项目 有没有做过法律相关的知识图谱构建来优化模型结果 5 基于第二个项目 在做方案研究的时候就只是模型的融合
  • hello paddle

    文章目录 一 用飞桨定义模型的计算 二 准备好运行飞桨 三 告诉飞桨怎么样学习 四 运行优化算法 五 机器学习出来的参数 import paddle 导入飞桨paddle和numpy import numpy print paddle pa
  • ssh普通用户(非root用户)的密钥登录

    原文地址 ssh原理 ssh普通用户 非root用户 的密钥登录 这里以用户名 zhangsan 为例 由于个人习惯问题 我把用户zhangsan的默认目录改了 在使用密钥登录的过程中 始终提示要输入用户密码 而 var log secur
  • 群晖硬盘已损毁 Linux 修复,群晖NAS提示空间损毁修复纪实

    注 以下操作有丢失数据的风险 请慎重考虑按本文提示操作 前几天 家里的服务器RAID卡告警 提示阵列掉盘 后花了一天时间进行重新挂盘并重建数据 不是重建阵列哈 开机 OK ESXI一切正常 运行各种系统没有问题 当打开NAS时 提示报错 重
  • stm32单片机基础(一)

    stm32单片机 串口复用 IO口功能如何查看 GPIO配置选择 GPIO 如何确定外设的时钟是APB1还是APB2 概念 时钟周期 机器周期 双工 半双工 单工含义区别 串口复用 一定要记得使能复用时钟 AFIO 端口IO功能复用时钟 某
  • 线程共享和私有的数据

    引用 windows程序员面试指南 堆上的数据是线程共享的 栈上的数据是线程私有的 1 堆上共享的数据 a 进程 代码段 b 进程 数据段 c 进程打开的文件描述符 d 信号的处理器 e 进程的当前目录和 f 进程用户 ID 与进程组 ID
  • 全网最牛,接口自动化-Linux系统安装Jenkins+Ant详细步骤

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • vld(Visual Leak Detector)下载地址和源码地址

    安装包下载页面 https kinddragon github io vld eg https github com KindDragon vld releases download v2 5 1 vld 2 5 1 setup exe 源
  • kafka存储原理介绍

    几个基本概念 Topic 消息主题 每一条消息都必须要指定主题 kafka集群可以同时进行多个topic的分发 Broker 消息处理的节点 可以立即为每个broker是一个单独的kafka进程 一般部署在不同的机器上 多个broker共同
  • js 计算月份差 ,天数差

  • Linux 安装 RocketMQ(Server)

    安装 linux版 官网下载地址 解压上传至 usr local 进入上传文件目录 cd usr local rocketmq all 4 7 0 source release bin 修改runbroker sh 修改runserver
  • chatgpt赋能python:如何通过Python赚钱

    如何通过Python赚钱 介绍 Python是一种高级编程语言 广泛用于Web开发 数据分析 机器学习等领域 Python具有简单易学 功能强大 易于维护等特点 因此非常受欢迎 而且 Python开源免费 可以在各个平台上运行 不需要花费太
  • Java设计模式-里氏替换原则

    里氏替换原则 Liskov Substitution Principle 定义1 如果对每一个类型为 T1的对象 o1 都有类型为 T2 的对象o2 使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时 程序 P 的行为没
  • 虚拟机ubantu连接物理机外部代理

    1 关闭windows防火墙 2 手动设置虚拟机代理 首先代理的允许局域网连接要打开 并且端口信息是根据v2rayN左下角的端口信息填写的 注意本地监听端口和局域网监听端口不一样
  • 【MATLAB第73期】# 源码分享

    MATLAB第73期 源码分享 基于MATLAB的不同类型数据排列方式合集 学习参考链接 1 对数组的行进行排序 单元格 字符串 类别 表 2 按字符代码对文本进行排序 3 对文件名 文件夹名或文件路径进行排序 4 对字符串 单元格 分类数