1、常用相关 [r, p] = corr(X,Y), [r, p] = partialcorr(X,Y, Z) , 其中Z是协变量。
2、TD_age = importdata('F:\BrainAging\result\NYU_SDSU_TD_age.mat'); 注意:红色标记处必须加上后缀。
3、代码智能缩进:Ctrl + I
4、求上三角矩阵函数:triu(A,k)%求矩阵A的第K条对角线以上的元素(k = 0 表示包含对角线)。
求下三角矩阵函数:tril(A,k)%求矩阵A的第K条对角线以下的元素(k = 0 表示包含对角线)。
5、提取矩阵(A)的值:
1)按列:B = A(:),B = A(:,k) 或者用reshape函数 ----> 按列取下/上三角部分:
%% 取下三角矩阵(按列,能将零值取出来)
myMatrix = fix(5*rand(5,5))+1;
myMatrix2 = myMatrix';%转置
yourWant = myMatrix(logical(tril(ones(size(myMatrix2)))));%取下三角形
或者:ind = find(tril(A,-1)); B= A(ind)---->按列取出非零值;
%% 取上三角矩阵(按列,能将零值取出来)
myMatrix = fix(5*rand(5,5))+1;
yourWant = myMatrix(logical(triu(ones(size(myMatrix)))));
2)按行:B = A(k,:)
3)按对角:cc = cell2mat(arrayfun(@(k) diag(A,k),1:3,'un',0)')';
6、计算相关有:[h,p] = corr(X,Y); [h, p] = partialcorr(X,Y, cov);
7、disp显示函数用法:disp(i)或者disp([‘my test=’,num2str(test)])
8、matlab中cell定义和赋值:w = {};w(i,:)={model.w};
9、MATLAB,在cell中取数据:
如下,node是一个2x1的cell,每个cell中有矩阵16x23
提取第一个cell中,第二行第三列的元素
使用
node{1,1}(2,3);
结果:
ans =
-0.8593
10、
sort(A)若A是向量不管是列还是行向量,默认都是对A进行升序排列。sort(A)是默认的升序,而sort(A,'descend')是降序排序。
sort(A)若A是矩阵,默认对A的各列进行升序排列
sort(A,dim)
dim=1时等效sort(A)
dim=2时表示对A中的各行元素升序排列
看下面的例子
11、
按矩阵的某一行排序:
12、Matlab中排列组合函数
- perms(x):在程序命令框中输入一个向量x,perms(x) 给出向量x的所有排列。
- combntns(x,m):在程序中输入一个向量x与需要的元素个数m,combntns(x,m)给出了从包含n个元素的向量x中选取m个元素的组合。
- nchoosek(x,m):在程序中输入一个向量x与需要的元素个数m,nchoosek(x,m)给出了从包含n个元素的向量x中选取m个元素的组合。
13、标准化
1. Min-max 标准化
新数据=(原数据-极小值)/(极大值-极小值)
标准化以后,X中元素的取值范围是[0,1]。
X = (X-Xmin))./(Xmax-Xmin);
2. z-score 标准化
新数据=(原数据-均值)/标准差
标准化以后,X中元素的取值范围为实数。
% Zscore normalize
X=zscore(X);
14、save存储:
save(['E:\hcc\DTI\test\','eddy_corrected_data_hcc_111.txt'], 'D', '-ascii')
save eddy_corrected_data_hcc.txt D -ascii
15、提取cell中某行某列的值:
如下,node是一个2x1的cell,每个cell中有矩阵16x23
提取第一个cell中,第二行第三列的元素
使用 node{1,1}(2,3);结果:ans = -0.8593
16、matlab 随机颜色矩阵:mat2cell(0+.75*rand(L,3),ones(1,L),3 )
17、matlab中,把一组数据顺序颠倒:行向量就用fliplr函数 列向量就用flipud函数
18、matlab 中读取结构体数据(average_networks是一个结构体):
hh = importdata('F:\BrainAging\average_networks.mat');
fun = hh.func_network;
BHA_stru_originalMat = hh.struct_network;
19、matlab 读取结构体中某一个矩阵: load([path,'\',temp(i).name],'mean_FA'), 其中,temp(i).name] 是一个结构体,如图:
20、将多个二维矩阵组合成一个三维矩阵:使用 cat 函数。
21、输出格式:( %d 整数, %e实数:科学计算法形式, %f实数:小数形式, %g由系统自动选取上述两种格式之一, %s输出字符串 )
22、Matlab 字体的选择(在preferences设置): “current folder” 和 “workspace” ----> Microsoft YaHei UI,"Editor" and " Command Window" ----> Monospaced
23、python 保存成.mat格式文件:
import numpy as np
import scipy.io as sio
sio.savemat('all_SCN_ASD_group_binary.mat',{'consensusNet':consensusNet})
24、save 存储在特定路径下:save([inPath,'rsq_asd_adol.mat'],'rsq');
25、matlab 中常用字体:sansSerif 和 Monospaced,
26、将全为零的列(行)删除:array (:,all(array == 0, 1)) = [];
%全零列设为空,或者 array (all(array == 0, 2),:) = [];
%全零行设为空,即可去掉。
27、将出现零的列(行)删除:array(:,array(:,1)==0) = [];%全零列设为空,或者 array(array(:,1)==0,:) = [] %全零行设为空。
28、生成既包含字符,又包含数字的格式,只能是cell, 可以通过excel列好数据,然后用命令:[num,txt,raw] = xlsread('E:\structural_network\abc.xlsx','sheet1');
29、Matlab中怎么把一维数组逆序排列,用 FLIPLR()函数;
30、Matlab的std()函数的使用:
y=std(x) 算出x的标准偏差。 x可以是vector或者一个matrix矩阵。
若x是vector,则y是算x的标准偏差。
若x是matrix,则y是个vector,存放的是算每一列/行的标准偏差。 std (x, flag,dim)
flag表示标注公差时是要除以n还是n-1
flag==0.........是除以n-1
flag==1.........是除以n
dim表示维数
dim==1..........是按照列分
dim==2..........是按照行分 若是三维的矩阵,dim==3就按照第三维来分数据
30、Matlab的squeeze()函数的使用:
A=rand([3 1 1 2])
squeeze(A)
31、如果data是一个cell, 如果取出里面的值就用"{}"符号(比如:data{1,1}),如果取出其值且保证结构不变就用"()" (比如:data(1;1))。
32、如果.mat文件太大,可以在matlab中将保存格式修改成“matlab version 7.3 or later”
33、matlab 取矩阵中非零值组成一个向量:
34、matlab 合并两个元组(i.e., cell):
35、怎样去掉矩阵的一维。1×4×5变为4×5 : Y = squeeze(X);
36、解压.gz的压缩文件:gunzip(filename, ourdir),比如: gunzip(E:\28853\B0.nii.gz, E:B0Img\28853);
意在交流学习,欢迎点赞评论🙏, 如有谬误,请联系指正。转载请注明出处。