cumsum前缀和
参考
cumsum(A,dim)
cumsum(A)【注】cumsum累加函数默认是按照列进行计算的
删除数组中一些给定下标对应的值
A=[1,2,3,4,5,6,7,8]
% 删除2,4,6
de=[2,4,6]
%%错误法一
% for i=1:length(de)
% A(:,de(i))=[];
% end
% A
%%正确法二(复杂)
% A0=[];
% for i=1:length(A)
% if(ismember(i,de)==1)continue; %i是否再de中存在
% end
% A0=[A0;A(i)];
% end
% A0
%%正确法三(就是他了)
A(de)=[];
A
xlswrite
xlswrite('1.xlsx',A,1,'C5')
ismember
clear,clc;
a=[4,2,3,4,5]
ismember(2,a) %返回1
ismember(6,a) %返回0
%判断某个元素的位置
find(a==4)就得到4所在的所有位置 % 1 4
fprintf
fprintf('第%d个峰值点\n', k);
打印函数
clc,clear
a=readmatrix('data10_5.txt'); [m,n]=size(a);
x0=a(:,[1:n-1]); y0=a(:,n);
hg1=[ones(m,1),x0]\y0; %计算普通最小二乘法回归系数
hg1=hg1' %变成行向量显示回归系数,其中第1个分量是常数项,其它按x1,...,xn排序
fprintf('y=%f',hg1(1)); %开始显示普通最小二乘法回归结果
for i=2:n
if hg1(i)>0
fprintf('+%f*x%d',hg1(i),i-1);
else
fprintf('%f*x%d',hg1(i),i-1)
end
end
fprintf('\n')
消除数据中的NAN
x=x(~isnan(x));
x=x(~isnan(x));
i = find( ~ isnan(x));
x = x(i) 先找出值不是NaN的项的下标,将这些元素保留
x = x(find( ~ isnan(x))) 同上,去掉NaN
x = x( ~ isnan(x)); 更快的做法
x(isnan(x)) = []; 消掉NaN
x(any(isnan(X)’)= []; 把含有NaN的行都去掉,注意这个转置
注意:判断一个值是否为NaN,只能用 isnan(),而不可用 x==NaN;
读取txt中的矩阵
a=readmatrix('data6_18.txt');
隔行同种读取数据
x=sj0(:,[1:2:8]); x=x(:);
y=sj0(:,[2:2:8]); y=y(:);
x=x(:);
每列元素叠成一个列向量