Matlab 常用语法速记 1
===快捷幫助===
查找幫助:doc 函數名
強制終止: ctrl + c
注釋: %
清屏 clc,清臨時變量窗口 clear
NaN: not a number
inf: infinite
?
===創建矩陣===
列向量:vecx = [1 2 3 4]; ? vecy = [1 2 3]';
矩陣:matA = [11 12 13 14; 21 22 23 24; 31 32 33 34];
下標從“1”開始,matA(2,3) 返回 23;
matA(1,:) 返回第1行向量
matA(2, 1:3)返回第2行的1到3元素構成的向量?
matA(2, 2:end)返回第2行的1到最后1個元素構成的向量?
?
==常用函數==
生成(截斷的)單位矩陣: eye(3), ?eye(3,4);
生成[0,1]之間的偽隨機數: rand();
生成1:100的隨機打亂序列:randIndex = randperm(100);
生成零數組:zeros(2,4)
?
===矩陣常見操作1===
判斷不相等:~
返回矩陣大小: size(A), ?szie(A, 2)
矩陣乘法 ?*,逐元素乘 ?.*
矩陣的逆 ? inv(matA) ? 或者 ? ?/matA
找出符合條件的元素在矩陣中的位置“數組/向量”: ?conIndexes = find( matA > 20 && matA < 25); 注意這里返回 ?conIndexes是 “按列優先”計數的向量;
對這些找出的位置賦值: matA(conIndexes) = 0; ??matA(conIndexes) = vecx';
按列優先,將矩陣轉化為一個長長的列向量: ?vecA = matA(:);
按列優先,將一個長長的 列 / 行 向量轉化為矩陣:matA = reshape(vecA, 3, 4);
reshape(),矩陣的每列都減去同一個列向量: matRes = matA - reshape(vecy, 1, 3);
bsxfun(),自動拓展 行/列向量 以此和操作的矩陣匹配:?matRes = bsxfun(@minus, matA, vecy); ?@add / rdivide / times / ....
?
==字符操作==
生成一個字符串的cell數組:cellStr =??{ 'hello', 'my', 'world'}; ? 取出字符 ?str1 = cellStr{1};
字符串拼接: conStr = [ 'you', 'are', str1, 'heart' ];
比較字符串是否相等:strcmp(cellStr{2}, 'mine') ,相等則返回 1
打印?fprintf('%s %s %s: %ith cross\n', algorithm{alg}, type{tp}, data{k}, i);
replace字符串中的特定字符: ?strrep(cellStr{2}, ?'m', 'happ');
數字直接轉化為字符:num2str()
fprintf() = sprintf() + disp(),比如:strp = sprintf('圓周率 pi = %8.5f \n', pi); disp(strp);??fprintf('圓周率 pi = %8.5f \n', pi);
?
==文件及路徑==
創建路徑:??fileFolder = [ './exp_result/', algorithms{3}, ?'_result/' ];
如果上面路徑不存在,則創建它
if ~exist(fileFolder)
? ?mkdir(fileFolder)
end
移動到指定文件夾: ?cd('./ml_metrics/'); ? ?...; ?? ? cd('../');
?
==其他常用函數==
將指定的字符串變量作為命令來執行: ? eval( [ cellStr{2}, ?'Mat = 1;'] );
將一些變量保存為指定路徑下的 .mat: ?save( ['./', cellStr{1}, '.mat'], ? 字符串變量名1,..., 字符串變量名n,[-append]); ?如果已存在該.mat文件,不加-append會將擦除
?
?
===流控制語句===
if 條件
? xxx;
elseif/else
? xxx;
end
for i=1:10
? xxx;
end
while i>0
? xxx
end
switch 變量
? ? case 常量1
? ? ? ? ?語句序列1;
? ? ........
? ?case? 常量n
? ? ? ? ?語句序列n;
? ?otherwise
? ? ? ? ?語句序列;
end
?
==函數定義==
function [retX, retY] = getSomething(inputX, inputY)
? xxx;
end
函數調用時真正調用的是函數文件名,而不是文件中函數的名字
?
轉載于:https://www.cnblogs.com/JesusAlone/p/8511296.html
總結
以上是生活随笔為你收集整理的Matlab 常用语法速记 1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1119. Pre- and Post-
- 下一篇: Study之2 Glance相关操作-d