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中的各行元素升序排列
看下面的例子
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
>> sort(A)
ans =
3 1 2
4 5 6
8 9 7
>> sort(A,1)
ans =
3 1 2
4 5 6
8 9 7
>> sort(A,2)
ans =
1 6 8
3 5 7
2 4 9
11、
按矩阵的某一行排序:
a =
5 7 8
4 6 1
8 0 7
>> sortrows(a,3)
ans =
4 6 1
8 0 7
5 7 8
12、Matlab中排列组合函数
-
perms(x):在程序命令框中输入一个向量x,perms(x) 给出向量x的所有排列。
-
combntns(x,m):在程序中输入一个向量x与需要的元素个数m,combntns(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);
原文:https://blog.csdn.net/qq_29259155/article/details/62884807?utm_source=copy
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()函数的使用:
2.1213 2.1213 2.1213 2.1213
31、如果data是一个cell, 如果取出里面的值就用"{}"符号(比如:data{1,1}),如果取出其值且保证结构不变就用"()" (比如:data(1;1))。
32、如果.mat文件太大,可以在matlab中将保存格式修改成“matlab version 7.3 or later”
33、matlab 取矩阵中非零值组成一个向量:
A=randi([0 4],4)
A =
4 2 1 0
2 3 2 3
0 4 0 2
0 3 0 0
B=nonzeros(A)\'
B = 4 2 2 3 4 3 1 2 3 2
34、matlab 合并两个元组(i.e., cell):
a=cell(1,2);
a{1}=zeros(1,2);
a{2}=zeros(2,2);
b=cell(1,2);
b{1}=zeros(1,3);
b{2}=zeros(1,3);
a
a=[a,b] %注意 这里是方括号
35、怎样去掉矩阵的一维。1×4×5变为4×5 : Y = squeeze(X);
36、解压.gz的压缩文件:gunzip(filename, ourdir),比如: gunzip(E:\28853\B0.nii.gz, E:B0Img\28853);