MATLAB数据处理快速学习教程

转自:http://blog.csdn.net/abcjennifer/article/details/7706581

本篇内容集合了MATLAB中的基本操作、数据存储与计算、数据的直线与曲线拟合与画图、for-if-while语句的使用方法对一般matlab的操作进行了基本和详细的应用举例,非常适合初学者进行matlab学习快速掌握。下面分四个模块分别进行讲述:

========================BasicOperations========================

>> A=rand(3,2)

A =

0.8147    0.9134

0.9058    0.6324

0.1270    0.0975

>> A=[1 2;3 4;5 6]

A =

1     2

3     4

5     6

>> A(3,2)

ans =

6

>> A(2,:)

ans =

3     4

>> A([1 3],:) %select the 1st and
3rd row

ans =

1     2

5     6

>> save test.mat A

>> save
testtext.txt A –ascii

>> A(:,2)=[10,11,12]

A =

1    10

3    11

5    12

>> A=[A,[101;102;103]]%append
another column vector

A =

1    10   101

3    11   102

5    12   103

>> A(:)%put all elements of A
into a single vector

ans =

1

3

5

10

11

12

101

102

103

B=[11,12;13,14;15,16]

B =

11    12

13    14

15    16

>> C=[A B]

C =

1    10  
101   11    12

3    11  
102   13    14

5    12  
103   15    16

A=[1 2;3 4;5 6]

A =

1     2

3     4

5     6

>> C=[A;B]

C =

1     2

3     4

5     6

11    12

13    14

15    16

========================Computingon
Data========================

>>A.*B%对应位置的数据相乘,即element product

ans =

11    24

39    56

75    96

>>A‘%转置

ans =

1     3    
5

2     4    
6

>> A<3

ans =

1     1

0     0

0     0

>> find(A<3)

ans =

1

4

A =

8     1    
6

3     5    
7

4     9    
2

>> [r,c]=find(A>=6)

r =

1

3

1

2

c =

1

2

3

3

a=[1 15 2 0.5]

a =

1.0000   15.0000   
2.0000   0.5000

>> sum(a)

ans =

18.5000

>> prod(a)

ans =

15

>> floor(a)%取下界

ans =

1    15    
2    0

>> ceil(a)%取上界

ans =

1    15    
2    1

rand(3)%创建3*3的random矩阵,每个值在[0,1]之间

ans =

0.6463    0.2760   
0.1626

0.7094    0.6797   
0.1190

0.7547    0.6551   
0.4984

>> max(rand(3),rand(3))
%在两个random的3*3矩阵中找对应位置的max

ans =

0.9597    0.2238   
0.5060

0.5472    0.7513   
0.8143

0.5853    0.8407   0.8909

A=magic(3)

A =

8     1    
6

3     5    
7

4     9    
2

>> max(A,[],1) %找每列最大值,1表示第一维,即列

ans =

8     9    
7

>> max(A,[],2) %找每行最大值,2表示第二维,即行

ans =

8

7

9

max(A) %defaultis column max

ans =

8     9    
7

>> max(max(A))

ans =

9

>> A(:)

ans =

8

3

4

1

5

9

6

7

2

>> max(A(:))

ans =

9

>>

>>

>>

>> A=magic(9)

A =

47    58   
69   80     1   
12   23    34    45

57    68   
79    9    11   
22   33    44    46

67    78    
8   10    21   
32   43    54    56

77     7   
18   20    31   
42   53    55    66

6    17   
19   30    41   
52   63    65    76

16    27   
29   40    51   
62   64    75     5

26    28   
39   50    61   
72   74     4    15

36    38   
49   60    71   
73    3    14    25

37    48   
59   70    81    
2   13    24    35

>> sum(A,1)%columnsum

ans =

369   369   369  369  
369   369  369   369   369

>> sum(A,2)%sumeach
row

ans =

369

369

369

369

369

369

369

369

369

>> eye(9)

ans =

1     0    
0    0     0    
0    0     0    
0

0     1    
0    0     0    
0    0     0    
0

0     0    
1    0     0    
0    0     0    
0

0     0    
0    1     0    
0    0     0    
0

0     0    
0    0     1    
0    0     0    
0

0     0    
0    0     0    
1    0     0    
0

0     0    
0    0     0    
0    1     0    
0

0     0    
0    0     0    
0    0     1    
0

0     0    
0    0     0    
0    0     0    
1

>> A.*eye(9)%takethe element
product of the 2 matrix

ans =

47     0    
0    0     0    
0    0     0    
0

0    68    
0    0     0    
0    0     0    
0

0     0    
8    0     0    
0    0     0    
0

0  
  0    0   
20     0    0    
0     0    0

0     0    
0    0    41    
0    0     0    
0

0     0    
0    0     0   
62    0     0    
0

0     0    
0    0     0    
0   74     0     0

0     0    
0    0     0    
0    0    14     0

0     0    
0    0     0    
0    0     0    35

>> sum(sum(A.*eye(9)))

ans =

369

>> A=magic(3)

A =

8     1    
6

3     5    
7

4     9    
2

>> temp=pinv(A) %矩阵求逆

temp =

0.1472   -0.1444    0.0639

-0.0611    0.0222    0.1056

-0.0194    0.1889   -0.1028

>> temp*A

ans =

1.0000   -0.0000   -0.0000

-0.0000    1.0000    0.0000

0.0000    0.0000   
1.0000

========================PlottingData========================

>>t=[0:0.01:0.98];

>> y1=sin(2*pi*4*t);

>> plot(t,y1)

>> hold on;%plotnew figure on the
old ones

>> y2=cos(2*pi*4*t);

>> plot(t,y2,‘r‘)

>> xlabel(‘time‘)
>> ylabel(‘value‘)
>>
legend(‘sin‘,‘cos‘)
>> title(‘my plot‘)
>> print -dpng
‘myplot.png‘%save as a file in default catalog

>> close

%分别显示两幅图像

>> figure(1);plot(t,y1);

>> figure(2);plot(t,y2)
>>

%一幅图中显示两个subplot

figure
subplot(1,2,1);plot(t,y1)
subplot(1,2,2);plot(t,y2)

axis([0.5 1 -1 1])

A=magic(5)

imagesc(A)

>>imagesc(A),colorbar,colormap gray;

========================for
if while statements========================

[cpp] view plaincopy

  1. > v=zeros(10,1)

  2. for i=1:10

  3. v(i)=2^i;

  4. end

  5. v

v =

     0
     0
 
   0
     0
     0
 
   0
     0
     0
 
   0
     0

v =

 
         2
         
 4
           8
     
    16
          32
   
      64
         128
 
       256
         512

        1024

[cpp] view plaincopy

  1. indices=1:10;

  2. indices

  3. for i=indices, disp(i);

  4. end

  5. i=1;

  6. while i<=5,

  7. v(i)=100;

  8. i=i+1;

  9. end;

  10. v

  11. i=1;

  12. while true,

  13. v(i)=999;

  14. i=i+1;

  15. if i==6,

  16. break;

  17. end

  18. end

  19. v

  20. v(1)=2;

  21. if v(1)==1,

  22. disp(‘The value is one‘);

  23. else if v(1)==2,

  24. disp(‘The value is two‘);

  25. else

  26. disp(‘The value is neither one or two‘);

  27. end

  28. end

另外还有一些matlab高级应用:

http://emuch.net/bbs/viewthread.php?tid=4340045

时间: 2024-07-28 18:54:10

MATLAB数据处理快速学习教程的相关文章

【Java的JNI快速学习教程】

1. JNI简介 JNI是Java Native Interface的英文缩写,意为Java本地接口. 问题来源:由于Java编写底层的应用较难实现,在一些实时性要求非常高的部分Java较难胜任(实时性要求高的地方目前还未涉及,实时性这类话题有待考究). 解决办法:Java使用JNI可以调用现有的本地库(C/C++开发任何和系统相关的程序和类库),极大地灵活Java的开发. 2. JNI快速学习教程 2.1 问题: 使用JNI写一段代码,实现string_Java_Test_helloworld

【Java线程池快速学习教程】

1. Java线程池 线程池:顾名思义,用一个池子装载多个线程,使用池子去管理多个线程. 问题来源:应用大量通过new Thread()方法创建执行时间短的线程,较大的消耗系统资源并且系统的响应速度变慢.[在一个什么程度上能够判断启用线程池对系统的资源消耗比启动定量的new Thread()资源消耗低?这个怎么测试?][用户体验卡顿?慢?观察CPU百分比?] 解决办法:使用线程池管理短时间执行完毕的大量线程,通过重用已存在的线程,降低线程创建和销毁造成的消耗,提高系统响应速度. 2. Java线

Maven快速学习教程

〇.为什么要Maven 在开发中经常需要依赖第三方的包,包与包之间存在依赖关系,版本间还有兼容性问题,有时还里要将旧的包升级或降级,当项目复杂到一定程度时包管理变得非常重要. Maven是当前最受欢迎的Java项目管理构建自动化综合工具,类似以前Java中的Ant.node.js中的npm.dotNet中的nuget.PHP中的Composer. Maven这个单词来自于意第绪语(犹太语),意为知识的积累. Maven提供了开发人员构建一个完整的生命周期框架.开发团队可以自动完成项目的基础工具建

【Android运行时权限申请快速学习教程】

1. Android权限介绍 Android权限是Android应用在设备上运行所需要的权力,义务就是为用户带来此Android应用的功能. 问题来源:在Android6.0版本之前,根据App在AndroidManifest申请的权限,在安装此App的时候进行提示权限允许,不允许就不给装不给用,那么我们只能默默的忍受这个APP对我们隐私的侵蚀(Eg.通讯录的读取权限). 解决办法:后来Google发现,诶,这样会导致Android用户们想用这个APP的某些功能而不能用.因此,在Android6

学习swift语言的快速入门教程推荐

随着苹果产品越来越火爆,苹果新推出的swift必定将在很大程度上代替oc语言.学好swift语言,对于IOS工程师来讲,已经是一门必备技能. 有一些比较好的英文版教程,值得学习. 1. Swift Tutorial for Beginners 在这个教程里,你可以学习一些iOS代码编写的新方法. 2. The Swift Programming Language 英文 中文 这是苹果官方出的iOS应用编程语言Swift的说明文档,中文版本很快就已经推出了.应该说还么有那个语音的中文文档翻译速度和

15个快速学习苹果Swift编程语言的入门教程

要说今年最火的编程语言是什么.那就非Swift莫属了.当然最主要还是市场炒的比较热,加上官方Swift教程<The Swift Programming Language>在北航的大三学生发起在github上进行协同翻译获得了很高的人气,短短几天时间内<Swift中文版>第一版就发布.这真是不火不行了. Swift是苹果公司在WWDC2014上发布的全新开发语言.从演示视频及随后在appstore上线的标准文档看来,语法内容混合了OC,JS,Python,语法简单,使用方便,并可与O

NetBeans工具学习之道:NetBeans IDE Java 快速入门教程

欢迎使用 NetBeans IDE! 本教程通过指导您创建一个简单的 "Hello World" Java 控制台应用程序,简要介绍 NetBeans IDE 工作流.学习完本教程后,您将对如何在 IDE 中创建和运行应用程序有一个基本了解. 学习完本教程所需的时间不到 10 分钟. 学完本教程后,您可以转至文档.培训和支持页中链接的学习资源.这些学习资源提供了综合性教程,其中重点介绍适用各种应用程序类型的更多 IDE 功能和编程技巧.如果您不希望创建 "Hello Worl

(*)(转)要快速学习SSM框架,你需要一套学习曲线平滑的教程

作者:meepo链接:https://www.zhihu.com/question/57719761/answer/156952139来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 要快速学习SSM框架,你需要一套学习曲线平滑的教程 1. 很快可以看到效果 SSM框架这种教程的,在百度或者git上一搜一大把,不过很遗憾,大部分你照着上面的流程做,是做不出来的,要么缺少包,要么配置文件漏了一个,要么本身就有问题.不仅浪费了你的时间,还会产生消极的作用,让你怀疑自己是

Deep Learning 深度学习 学习教程网站集锦

http://blog.sciencenet.cn/blog-517721-852551.html 学习笔记:深度学习是机器学习的突破 2006-2007年,加拿大多伦多大学教授.机器学习领域的泰斗Geoffrey Hinton和他的学生RuslanSalakhutdinov在<科学>以及在Neural computation 和 NIPS上发表了4篇文章,这些文章有两个主要观点: 1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类: 2