>> A = [1 2;3 4;5 6] A = 1 2 3 4 5 6 >> sz = size(A) sz = 3 2 >> size(A,1) ans = 3 >> length(A) ans = 3 >> B = [1 2 3 4 5 6]; >> length(B) ans = 6 >> length([9 8 7 6 5]) ans = 5
size(A)返回矩阵的尺寸,也就是行数和列数,得到的是一个一行,两列的向量,因此size(A,1)返回sz的第一个元素,也就是A的行数,length(A)返回A的最大的那个维度,通常我们用length是获取向量的尺寸,也不用在矩阵。
>> pwd ans = /Users/Admin
pwd命令显示Octave当前的路径,我们用cd来改变路径,然后通过“load 文件名”或者“load('文件名')”来加载文件到Octave,who命令能显示当前Octave储存的变量,whos命令还能打印出变量的维度及占用内存空间以及数据类型,clear命令可以删除变量
>> cd /Users/Admin/Desktop/data >> ls history.dat >> load history.dat >> who Variables in the current scope: A B C a ans b history sz w >> whos Variables in the current scope: Attr Name Size Bytes Class ==== ==== ==== ===== ===== A 3x2 48 double B 1x6 48 double C 1x5 24 double a 1x100 800 double ans 1x16 16 char b 1x5 5 char history 4x2 64 double sz 1x2 16 double w 1x10000 80000 double Total is 10148 elements using 81021 bytes >> clear history >> who Variables in the current scope: A B C a ans b sz w
将history的第2到7个元素赋值到v,然后存储到copy.mat文件
>> v = history(2:7) v = 2290 2345 2431 2534 1098 2732 >> save copy.mat v;
我们继续清除所有变量,然后加载刚才存储的copy.mat文件并打印
>> clear >> load copy.mat >> whos Variables in the current scope: Attr Name Size Bytes Class ==== ==== ==== ===== ===== v 1x6 48 double Total is 6 elements using 48 bytes >> v v = 2290 2345 2431 2534 1098 2732
我们还能以我们想要的方式去存储数据
>> save copy.txt v -ascii
有关数据操作
>> A = [1 2;3 4;5 6]; >> A(3,2) %A的第三行,第二列的元素 ans = 6 >> A(2,:) %第二行 ans = 3 4 >> A([1,3],:) %A的第1,3行组成的矩阵 ans = 1 2 5 6 >> A(:,2) = [9;8;7] %重新赋值A的第二列元素 A = 1 9 3 8 5 7 >> A = [A,[10;11;12]] %添加新的列 A = 1 9 10 3 8 11 5 7 12 >> A(:) %A的所有元素组成的向量 ans = 1 3 5 9 8 7 10 11 12
继续
>> A = [1 2;3 4;5 6]; >> B = [11 12;13 14;15 16]; >> C = [A B] %等同于C = [A,B] C = 1 2 11 12 3 4 13 14 5 6 15 16 >> C = [A;B] %这里可以理解为分号的意思相当于换行 C = 1 2 3 4 5 6 11 12 13 14 15 16
参考资料