一、genpath()/addpath()
pwd = 'F:\desktop\DiffuseRecon'; % pwd为当前路径
folder_all = genpath(pwd);
% genpath(pwd)表示当前文件夹pwd下的所有文件夹folder以及folder下的全部子文件夹
% 此处folder_all(类型为char)的值为F:\desktop\DiffuseRecon;F:\desktop\DiffuseRecon\improved_diffusion;F:\desktop\DiffuseRecon\improved_diffusion\__pycache__;F:\desktop\DiffuseRecon\improved_diffusion.egg-info;F:\desktop\DiffuseRecon\scripts;
如果输入 addpath E:\llj\ipackage_emd 只能添加ipackage_emd目录,如果该目录下有其他子文件夹,并且运行时候“隐式”调用到这些子文件夹(例如ipackage_emd目录下有子文件夹matdata,该子文件夹下有logo.mat文件,且在m文件代码中使用了load logo这样的句子,即没有显式给出logo.mat的具体路径,则称为“隐式”),则不能正确访问。因此,有必要在添加时使用以下语句把ipackage_emd目录下所有文件夹都添加到搜索路径中。
调用语句:addpath(genpath("E:\llj\ipackage_emd"))
二、permute()
permute函数功能是置换数组维度。
语法:B = permute(A,dimorder)
说明:B = permute(A,dimorder) ,B按照向量dimorder指定的顺序重新排列数组的维度。例如,permute(A,[2 1]) 是指交换矩阵 A 第一维(行)元素和第二维(列)元素。
三、reshape()
reshape函数功能是重构数组。
语法:B = reshape(A, sz);
说明:B按矢量sz定义的维度(包括行数 列数 维数)重构矩阵A来得到矩阵B
实现方式:先将矩阵A先排列成一列(结果感受就是按列优先排列),再按照矢量sz定义大小的行数切割
实例:
A = rand(4,5)
0.3537 0.6694 0.6692 0.3119 0.8322
0.6230 0.1045 0.5429 0.9518 0.3994
0.6557 0.4872 0.5621 0.9596 0.4807
0.1019 0.2323 0.9449 0.1287 0.2518
B = reshape(A, 10, 2)
0.3537 0.5621
0.6230 0.9449
0.6557 0.3119
0.1019 0.9518
0.6694 0.9596
0.1045 0.1287
0.4872 0.8322
0.2323 0.3994
0.6692 0.4807
0.5429 0.2518
四、size()/length()/numel()
size:获取数组的行数和列数
length:数组长度(即行数或列数中的较大值)
numel:元素总数。
s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。
[r,c]=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量。
如果在size函数的输入参数中再添加一项,并用1或2为该项赋值,则size将返回数组的行数或列数。 其中r=size(A,1)该语句返回的时数组A的行数, c=size(A,2) 该语句返回的时数组A的列数。
n=numel(A)该语句返回数组中元素的总数。
n=length(A):如果A为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了max(size(A));如果A为空数组,则返回0;如果A是一个向量则返回A的长度。
n=max(size(A):若A为非空数组,返回A的最大维数;若A为空数组,返回A中最长的非0维数。