记一些Matlab的常用语句

(1)得到m×n的±1随机分布的矩阵

a=rand(3,4);
>> a=(a>0.5)-(a<0.5);

得到±1随机分布的3×4的矩阵如下:

(2)删除矩阵中某列所有元素(不)等于x的行,删除矩阵中某行所有元素(不)等于y的列

在matlab编码过程中,经常会遇到提取指定数据的问题,比如在m×n的矩阵中,矩阵的第二列包含10年的所有月份,而你只想研究10年里每年3月的数据,这时候就需要提取该矩阵所有包含3月的行。一般操作如下:

m=zeros(24,3);%生成24行3列的零矩阵
>> m(1:12,2)=1:12;
>> m(13:24,2)=1:12;%其中第2列为两年的月份,即1~12,1~12
%%现要提取其中包含3月份的所有行
k=[];%创建一个空矩阵用来存放包含3月份数据的行号
for i=1:length(m)%遍历矩阵m
    if m(i,2)==3%如果i行2列的元素等于3
        k=[k;i];%记录下行号
    end
end
x=m(k,:)%将矩阵m中被记录的行号的数据赋值给x矩阵

x =

     0     3     0
     0     3     0

考虑到其编码复杂性及处理效率较低,笔者自己摸索出了一个较为高效的语句,如下两个例子分别删除指定行和指定列,提取指定行和列亦然,请读者稍作变通,不作赘述。 

a=[1 2 3 4;5 6 7 8; 2 3 5 6 ;3 3 3 3]

a =

     1     2     3     4
     5     6     7     8
     2     3     5     6
     3     3     3     3

>> a(a(:,2)~=3,:)=[]%遍历第2列,删除其中不等于3的元素所在的行

a =

     2     3     5     6
     3     3     3     3
a=[1 2 3 4;5 6 7 8; 2 3 5 6 ;3 3 3 3]

a =

     1     2     3     4
     5     6     7     8
     2     3     5     6
     3     3     3     3

>> a(:,a(3,:)==5)=[]%遍历第三行所有元素,如果该元素等于5,则删除其所在列

a =

     1     2     4
     5     6     8
     2     3     6
     3     3     3

(3)save的用法

(1)保存矩阵到.txt文件中

a=rand(3)%生成3×3的矩阵

a =

    0.1419    0.7922    0.0357
    0.4218    0.9595    0.8491
    0.9157    0.6557    0.9340

save a.txt -ascii a%将该矩阵保存到a.txt文件中,该文件位于当前所在目录
b=importdata('a.txt');读取a.txt中的数据到b矩阵中

(2)保存变量到.mat文件中

save 7_19%将当前工作区所有变量保存到7_19.mat文件中,下次直接双击7_19.mat文件,即可得到之前的变量

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Toblerone_Wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值