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)表示第一维,即列
ans =
8 9 7
>> max(A,[],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;

- > v=zeros(10,1)
- for i=1:10
- v(i)=2^i;
- end
- v
v =
0
0
0
0
0
0
0
0
0
0
v =
2
4
8
16
32
64
128
256
512
1024
- indices=1:10;
- indices
- for i=indices, disp(i);
- end
- i=1;
- while i<=5,
- v(i)=100;
- i=i+1;
- end;
- v
- i=1;
- while true,
- v(i)=999;
- i=i+1;
- if i==6,
- break;
- end
- end
- v
- v(1)=2;
- if v(1)==1,
- disp('The value is one');
- else if v(1)==2,
- disp('The value is two');
- else
- disp('The value is neither one or two');
- end
- end
另外还有一些matlab高级应用:
http://emuch.net/bbs/viewthread.php?tid=4340045
MATLAB数据处理快速学习教程的更多相关文章
- 【Java线程池快速学习教程】
1. Java线程池 线程池:顾名思义,用一个池子装载多个线程,使用池子去管理多个线程. 问题来源:应用大量通过new Thread()方法创建执行时间短的线程,较大的消耗系统资源并且系统的响应速度变 ...
- 【Java的JNI快速学习教程】
1. JNI简介 JNI是Java Native Interface的英文缩写,意为Java本地接口. 问题来源:由于Java编写底层的应用较难实现,在一些实时性要求非常高的部分Java较难胜任(实时 ...
- Java线程池快速学习教程
1. Java线程池 线程池:顾名思义,用一个池子装载多个线程,使用池子去管理多个线程. 问题来源:应用大量通过new Thread()方法创建执行时间短的线程,较大的消耗系统资源并且系统的响应速度变 ...
- 学习swift语言的快速入门教程推荐
随着苹果产品越来越火爆,苹果新推出的swift必定将在很大程度上代替oc语言.学好swift语言,对于IOS工程师来讲,已经是一门必备技能. 有一些比较好的英文版教程,值得学习. 1. Swift T ...
- 快速学习Symfony4,Symfony4教程
快速学习Symfony4,Symfony4教程https://symfony.com/doc/current/index.html 关注公众号回复Symfony4教程,Symfony4教程视频,或访问 ...
- (*)(转)要快速学习SSM框架,你需要一套学习曲线平滑的教程
作者:meepo链接:https://www.zhihu.com/question/57719761/answer/156952139来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- Linux快速入门教程-进程管理ipcs命令学习
使用Linux系统必备的技能之一就是Linux进程管理,系统运行的过程正是无数进程在运行的过程.这些进程的运行需要占用系统的内存等资源,做好系统进程的管理,对于我们合理分配.使用系统资源有非常大的意义 ...
- ASP.NET MVC 5 学习教程:快速入门
起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控制器访问模型的数据 生成的代码详解 使用 SQL Se ...
- MATLAB地图工具箱学习总结(一)从地图投影说起
MATLAB地图工具箱学习总结(一)从地图投影说起 前言 本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业.从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会 ...
随机推荐
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
登录服务器,使用root用户连接mysql时出现错误提示: $ bin/mysql -uroot -p Enter password: ERROR (HY000): Can't connect to ...
- 【BZOJ】2760: [JLOI2011]小A的烦恼【字符串模拟】
2760: [JLOI2011]小A的烦恼 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 406 Solved: 258[Submit][Statu ...
- tsinsen A1333
可以用二维树状数组套值域线段树来做,复杂度:O( (n*n+q) * logn logn log10^9 ) 但作为作为整体二分的例题,还是用整体二分来写了一下.对整体二分有一点感觉了. 整体二分,顾 ...
- Codeforces Beta Round #37 C. Old Berland Language 暴力 dfs
C. Old Berland Language 题目连接: http://www.codeforces.com/contest/37/problem/C Description Berland sci ...
- PAT甲级1123. Is It a Complete AVL Tree
PAT甲级1123. Is It a Complete AVL Tree 题意: 在AVL树中,任何节点的两个子树的高度最多有一个;如果在任何时候它们不同于一个,则重新平衡来恢复此属性.图1-4说明了 ...
- Linux入门基础篇
Linux入门基础篇 Linux诞生 Linux发行版本说明 Linux官方网站 Linux内核官方网站 比较有名的Linux发行版 虚拟机(Virtual Machine),一个虚拟的系统,安装在系 ...
- ios 中局部变量可以通过传递来进行管理和释放,借此可提高代码的內聚度
ios 中 局部变量可以通过传递来进行管理和释放,通过多使用局部变量,可以提高代码的內聚度.如下: -(void)someMethod { UILabel *label = [[UILabel al ...
- 转:在两个页面间翻转设置Animation动作的一些总结
今天碰到两个页面之间翻转的动作设计问题,发现了一些问题,故做个总结,很多都写在注释部分: 1.首先,我们来手动创建两个view以及相应的viewController.是手动,不是用IB (1)刚开始只 ...
- 【微信小程序】处理时间格式,时间戳转化展示时间格式问题,调用外部js的默认方法function的问题
默认的 小程序中new Date()显示的时间是这样的: 格式化时间的显示怎么做: 小程序的根目录下util目录下默认有一个util.js文件 其中util.js文件内容是: //数据转化 funct ...
- pytest文档21-pytest-html报告优化(nodeid中文显示[\u6350\u52a9\u6211\u4eec]问题解决)
前言 pytest-html报告中当用到参数化时候,获取用例的nodeid里面有中文时候,会显示[\u6350\u52a9\u6211\u4eec]这种编码(再次声明,这个不叫乱码,这是unicode ...