matlab一些巧妙用法

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(:);
每列元素叠成一个列向量

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值