-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOctave
More file actions
127 lines (113 loc) · 5.82 KB
/
Octave
File metadata and controls
127 lines (113 loc) · 5.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
基本
1 == 2
1 ~= 2
1 && 0
1 || 0
xor(1,0)
PS1('>> ');
a=pi;
disp(sprintf('2 decimals: %0.2f',a))
矩阵
>>c(2,3)=5 % c isn't defined,so we can get [0 0 0;0 0 5]
>>d=[1 2]
>>d(4)=4 % return d=[1 2 0 4]
>>[maxval index]=max([1 -5 6 -1])
>>ones(2,3) %[1 1 1;1 1 1] "zeros" can instead of "ones"
>>C = 2*ones(2,3) %[2 2 2;2 2 2]
>>rand(3,3) % random matrix,一个参数的时候是方阵
>>randn(1,100) % according to the Gaussian create these random number
>>eye(3) % return [1 0 0;0 1 0;0 0 1]
help eye
>>A=[1 2;3 4;5 6]
>>size(A)
ans =
3 2
>>V = [1 2 3 4]
>>length(v)
ans = 4
>>A(:,2) %列举矩阵A第二列,参数由逗号划分,第一个参数表示行号,第二行表示列号;事实表明冒号两边的参数要么全为0要么全不为0
>>A([1 3],:) %第1,3行的全部元素
>>A(:,2) = [10; 11; 12] %直接赋值
>>A = [A, [100; 101; 102]]; %添加新的一列
>>A(:) %把所有A的元素放到一个向量里
>>C = [A B] 或者 C =[A;B]
数据的加载,保存
>>pwd %显示当前文件目录
使用cd和ls指令来转换工作目录,cd 'C:\Users'
>>load name.dat %加载文件,文件里的数据按行按空格划分好了...
>>data = name
>>who %显示当前所有局部变量
>>whos %显示局部变量更详细的信息
>>clear name %删除某变量,不加变量名表示全部删除
>>save hello.mat v [-ascii] %把变量v保存到hello.mat文件里
数据的计算
A*B %矩阵乘法
A .* B %两个矩阵大小要一样,结果是对应元素相乘
A .^ 2 %A的元素都平方
1 ./ A %A的元素都取倒
log(v),exp(v),abs(v),-v,sum(v),prod(v)(元素连乘),floor(v),ceil(a)
v + ones(length(v),1) 跟 v+1 效果一样... %给v所有元素加1
A' %转置
v < 3 %返回的0,1向量
find(v<3)返回值为1的v的向量的下标
[r,c] = find(A>3) %返回r和c两个向量,对应联系在一起看就可以看到真正的下标
[val, ind] = max(v),v是向量的时候工作比较正常,v如果是矩阵的话就不太好使了
max(A,[],1) %每列最大值
max(A,[],2) %每行最大值
max(max(A)) %矩阵的最大值,max(A)只是返回了每列最大值
sum(A,1) %列之和,2为行之和
>>X = [ones(m,1),X(:)] %mÊÇ֮ǰÒÑÖªµÄÒ»¸ö²ÎÊý£¬ones(x,y)
>>flipupd(A) %A左右对称
>>pinv(A) %求逆
>>t = [0:0.01:0.98]; %·ÖºÅÒâÒåͬMatlab£¬±íʾ²»ÏÔʾ
>>y1=sin(2*pi*4*t);
>>plot(t,y1);
>>plot(x,y,'rx') %Êä³öµãͼÏñ
%¡®rx¡¯²ÎÊý±íʾÊǵ¥¶ÀµÄµã£¬Ã»ÓÐÕâ¸ö²ÎÊýµÄ»°¾Í»á°´ÕÕÊý¾Ý˳ÐòÁ¬Ïß
%Á½ÌõplotÓï¾äÖ®¼ä¼Óhold on£¬±íʾÁ½¸öͼÏñͬʱÏÔʾ
>>axis([xmin xmax ymin ymax]) %ͼÏñµÄÇø¼ä±»ÖØÖóɸø¶¨²ÎÊý
>>xlabel('name')
>>ylabel('name') %ÔÚxºÍyÖá¼ÓÉϱäÁ¿Ãû×Ö
>>legend('name1','name2') %¸øÍ¼Ïñ¼ÓÉϽâÊÍ
>>title('Name') %¼ÓÉϱêÌâ
>>cd 'µØÖ·¡¯£»print -dpng 'name.png' %±£´æ³Épng
>>axis([x1 x2 y1 y2]) %¸Ä±äͼÏñÇø¼ä
>>figure(n); %´ò¿ªµÚn¸öͼÏñ´°¿Ú£¬Ò²¾ÍÊÇ˵Èç¹ûÐèÒª¶à´°¿ÚÏÔʾͼÏñµÄ»°£¬Ã¿ÏÔʾһ¸öͼÏñ֮ǰ¶¼¼ÓÉÏÕâÌõÖ¸Áµ±È»nÖµÒª±ä£©¡£
>>subplot(x1,x2,x3) %µÚÒ»¶þ¸ö²ÎÊý±íʾ°ÑÕû¸öͼÏñ´°¿Ú»®·Ö³Éx1*x2¿é£¬µÚÈý¸ö²ÎÊý ±íʾʹÓõÚx3¸ö²¿·ÖÀ´»æÍ¼
>>polar(theta,r) %Óü«×ø±ê´òӡͼÏñ
>>clf;
>>imagesc(A) %AÊÇÒ»¸ö¾ØÕó,´òÓ¡³öAµÄÏñËØÍ¼£¬Ã¿¸ñΪÊýÖµ´ú±íµÄÑÕÉ«
>>imagesc(A),colorbar£û,colormap gray£ý; %Ôö¼ÓÑÕÉ«ºÍÊýÖµµÄbar£¬²¢°ÑÈ«ÑÕÉ«»Ò¶È
>>str='This is a test';
>>x=double(str) %°Ñÿ¸ö×Ö·ûת³ÉÊý×Ö£¬½á¹ûÊÇÒ»¸öÊý×é
>>x=char(x) %ÔÙ°Ñx±ä»ØÀ´
>>name=char('Stephen','Senior') %Éú³ÉÒ»¸öÊý×飬Êý×éÿÏîÊÇÒ»¸ö×Ö·û´®£¬nameµÄϱêÊǽ«Á½¸ö×Ö·û´®¶ÔÆëºóÏÈ×ÝÏòºóºáÏò¼ÆËãµÄ¡£eg.ÕâÀïµÄ1ÊÇ¡®S'£¬2ÊÇ¡®S'£¬3ÊÇ¡®t'£¬4ÊÇ¡®e¡¯£¨Í¬ÆÕͨ¶þάÊý×éÒ»Ñù£©
>>line2=name(2,:) %¸úÆÕͨÊý×é²Ù×÷Ò»Ñù
>>result = strcat('string 1 ','string 2') %ºáÏòÁ¬½ÓÁ½¸ö×Ö·û´®
>>result2 = strvcat('string 1 ','string 2') %°ÑµÚ¶þµÄ×Ö·û´®·Åµ½µÚ¶þÐÐ
>>a=isletter(str) %·µ»ØÒ»¸öÊý×飬str´®ÀïΪ×ÖĸµÄ·µ»Ø1
>>a=isspace(str) %·µ»ØÒ»¸öÊý×飬srr´®ÀïΪ¿Õ¸ñµÄ·µ»Ø1
>>position = findstr(test,'is') %·µ»Øtest´®ÖС®is¡¯³öÏÖµÄλÖÃ
>>v=zeros(10,1); %forÓï¾äʾ·¶
>>for i=1:10
> v(i) = 2 ^ i;
> end;
>>i = 1; %whileºÍbreakÓï¾äʾ·¶
>>while i <= 5,a.dat
> v(i) = 100;
> i = i+1;
> if i ==2
> break;
> end;
> end;
>>if v(1)==1
> disp('xxx');
> elseif v(1)==2
> disp('yyy');
> else
> disp('zzz');
> end;
>>a=[1 2 3;4 5 6;7 8 9];
>>b = a > 5; %bÊÇÂß¼Êý×飬Ҳ¾ÍÊǽ«aµÄÿһÏî×öÂß¼ÔËËãµÃµ½µÄ1»ò0µÄÊý×é¡£Âß¼Êý×éÓëÆÕͨÊý×éÊDz»Ò»ÑùµÄ¡£
>>a(b)=sqrt(a(b)) %a(b)ÀàËÆÓÚÒ»¸öÑ»·¼ÓÅжϣ¬sqrt×÷ÓÃÓÚaÊý×é¶ÔÓ¦Âß¼Êý×éΪ1µÄÏîËù×é³ÉµÄÊý×飬Âß¼Êý×éΪ0µÄÏî±£³ÖÔÖµ¡£
194