matlab中for循環嵌套if語句
1、新建一個子程序loopcolor。
2、然后是定義幾個變量,都是整數型。Dim myrow As Integer Dim mycol As Integer Dim mycolor As Integer。
3、為mycolor賦值。mycolor = 0。
4、對myrow進行循環。
5、在myrow的循環里面再嵌套另外一個循環mycol。
6、再循環里面,分別選中單元格,并為這些單元格填充顏色。
7、最后運行這個程序,然后回到excle的界面,就可以看到被填充的顏色塊了。
matlab中for循環嵌套if語句
1、新建一個子程序loopcolor。
2、然后是定義幾個變量,都是整數型。Dim myrow As Integer Dim mycol As Integer Dim mycolor As Integer。
3、為mycolor賦值。mycolor = 0。
4、對myrow進行循環。 5、在myrow的循環里面再嵌套另外一個循環mycol。
6、再循環里面,分別選中單元格,并為這些單元格填充顏色。 7、最后運行這個程序,然后回到excle的界面,就可以看到被填充的顏色塊了。
。
matlab 如何使用循環語句
一、基本技術 ----------------------------------------------------- 1)MATLAB索引或引用(MATLAB Indexing or Referencing) 在MATLAB中有三種基本方法可以選取一個矩陣的子陣。
它們分別是 下標法,線性法和邏輯法(subscripted, linear, and logical)。 如果你已經熟悉這個內容,請跳過本節 1.1)下標法 非常簡單,看幾個例子就好。
A = 6:12; A([3,5]) ans = 8 10 A([3:2:end]) ans = 8 10 12 A = [11 14 17; 。 12 15 18; 。
13 16 19]; A(2:3,2) ans = 15 16 1.2)線性法 二維矩陣以列優先順序可以線性展開,可以通過現行展開后的元素序號 來訪問元素。 A = [11 14 17; 。
12 15 18; 。 13 16 19]; A(6) ans = 16 A([3,1,8]) ans = 13 11 18 A([3;1;8]) ans = 13 11 18 1.3)邏輯法 用一個和原矩陣具有相同尺寸的0-1矩陣,可以索引元素。
在某個 位置上為1表示選取元素,否則不選。得到的結果是一個向量。
A = 6:10; A(logical([0 0 1 0 1])) ans = 8 10 A = [1 2 3 4]; B = [1 0 0 1]; A(logical(B)) ans = 1 4 ----------------------------------------------------- 2)數組操作和矩陣操作(Array Operations vs. Matrix Operations) 對矩陣的元素一個一個孤立進行的操作稱作數組操作;而把矩陣視為 一個整體進行的運算則成為矩陣操作。MATLAB運算符*,/,,^都是矩陣 運算,而相應的數組操作則是.*, ./, ., .^ A=[1 0 ;0 1]; B=[0 1 ;1 0]; A*B % 矩陣乘法 ans = 0 1 1 0 A.*B % A和B對應項相乘 ans = 0 0 0 0 ------------------------------------------------------ 3)布朗數組操作(Boolean Array Operations) 對矩陣的比較運算是數組操作,也就是說,是對每個元素孤立進行的。
因此其結果就不是一個“真”或者“假”,而是一堆“真假”。這個 結果就是布朗數組。
D = [-0.2 1.0 1.5 3.0 -1.0 4.2 3.14]; D >= 0 ans = 0 1 1 1 0 1 1 如果想選出D中的正元素: D = D(D>0) D = 1.0000 1.5000 3.0000 4.2000 3.1400 除此之外,MATLAB運算中會出現NaN,Inf,-Inf。對它們的比較參見下例 Inf==Inf返回真 InfNaN==NaN返回假 同時,可以用isinf,isnan判斷,用法可以顧名思義。
在比較兩個矩陣大小時,矩陣必須具有相同的尺寸,否則會報錯。這是 你用的上size和isequal,isequalwithequalnans(R13及以后)。
------------------------------------------------------ 4)從向量構建矩陣(Constructing Matrices from Vectors) 在MATLAB中創建常數矩陣非常簡單,大家經常使用的是: A = ones(5,5)*10 但你是否知道,這個乘法是不必要的? A = 10; A = A(ones(5,5)) A = 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 類似的例子還有: v = (1:5)'; n = 3; M = v(:,ones(n,1)) M = 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 事實上,上述過程還有一種更加容易理解的實現方法: A = repmat(10,[5 5]); M = repmat([1:5]', [1,3]); 其中repmat的含義是把一個矩陣重復平鋪,生成較大矩陣。 更多詳細情況,參見函數repmat和meshgrid。
----------------------------------------------------- 5)相關函數列表(Utility Functions) ones 全1矩陣 zeros 全0矩陣 reshape 修改矩陣形狀 repmat 矩陣平鋪 meshgrid 3維plot需要用到的X-Y網格矩陣 ndgrid n維plot需要用到的X-Y-Z。網格矩陣 filter 一維數字濾波器,當數組元素前后相關時特別有用。
cumsum 數組元素的逐步累計 cumprod 數組元素的逐步累計 eye 單位矩陣 diag 生成對角矩陣或者求矩陣對角線 spdiags 稀疏對角矩陣 gallery 不同類型矩陣庫 pascal Pascal 矩陣 hankel Hankel 矩陣 toeplitz Toeplitz 矩陣 ========================================================== 二、擴充的例子 ------------------------------------------------------ 6)作用于兩個向量的矩陣函數 假設我們要計算兩個變量的函數F F(x,y) = x*exp(-x^2 - y^2) 我們有一系列x值,保存在x向量中,同時我們還有一系列y值。 我們要對向量x上的每個點和向量y上的每個點計算F值。
換句話 說,我們要計算對于給定向量x和y的所確定的網格上的F值。 使用meshgrid,我們可以復制x和y來建立合適的輸入向量。
然后 可以使用第2節中的方法來計算這個函數。 x = (-2:.2:2); y = (-1.5:.2:1.5)'; [X,Y] = meshgrid(x, y); F = X .* exp(-X.^2 - Y.^2); 如果函數F具有某些性質,你甚至可以不用meshgrid,比如 F(x,y) = x*y ,則可以直接用向量外積 x = (-2:2); y = (-1.5:.5:1.5); x'*y 在用兩個向量建立矩陣時,在有些情況下,稀疏矩陣可以更加有 效地利用存儲空間,并實現有效的算法。
我們將在第8節中以一個 實例來進行更詳細地討論. -------------------------------------------------------- 7)排序、設置和計數(Ordering, Setting, and Counting Operations) 在迄今為止討論過的例子中,對向量中一個元素的計算都是獨立 于同一向量的其他元素的。但是,在許多應用中,你要做的計算 則可能與其它元素密切相關。
例如,假設你用一個向量x來表示一 個集合。不觀察向量的其他元素,你并不知道某個元素是不是一 個冗余元素,并應該被去掉。
如何在不使用循環語句的情況下刪除 冗余元素,至少在現在,并不是一個明顯可以解決的問題。 解決這類問題需要相當的智巧。
以下介紹一些可用的基本工具 max 最大元素 min 最小元素 sort 遞增排序 unique 尋找集合中。
Matlab 中while循環語句的用法
while語法:
while expression
statements
end
說明:while expression, statements, end 計算一個表達式,并在該表達式為 true 時在一個循環中重復執行一組語句。表達式的結果非空并且僅包含非零元素(邏輯值或實數值)時,該表達式為 true。否則,表達式為 false。
示例代碼如下:
function [sum] = summation(ratio, head, top)
sum = 0;
while (head <= top)
sum = sum + ratio ^ head;
head = head + 1;
end
end
假設ratio = 2,head = 0,top = 63
擴展資料:
Matlab控制流語句包括條件語句、循環和分支。
if, elseif, else 條件為 true 時執行語句。
for 用來重復指定次數的 for 循環。
parfor 并行循環。
switch, case, otherwise 執行多組語句中的一組。
try, catch 執行語句并捕獲產生的錯誤。
while 條件為 true 時重復執行的 while 循環。
break 終止執行 for 或 while 循環。
continue 將控制權傳遞給 for 或 while 循環的下一迭代。
end 終止代碼塊或指示最大數組索引。
pause 暫時停止執行 MATLAB。
return 將控制權返回給調用函數。
參考資料:
MathWorks文檔——while循環
matlab if else語句怎么用
1、先打開軟件,點擊左上角進行新建腳本,即創建一個m文件,打開編譯界面后,先將此m文件進行保存,注意命名規則,只能用英文加下劃線。
2、對于只用兩種情況的問題,則只用到else即可,第一個if說明情況一,else說明不滿足情況一的所有其他情況。注意結尾要加end,不然如圖命令提示所示,會報錯。
3、對于多個情況,可設置多個判斷,對于有新判斷條件的情況用elseif添加,下圖所示,為3種情況,根據a的值,運行后滿足第二種情況。
4、對于其他情況,如果判斷出符合這種情況可以不寫,如符合else條件,但是不用執行程序,則可連else都不寫,也可寫上,只是后面不寫執行語句,程序也不會報錯,對于elseif、if也是,不需執行程序,也可寫上條件判斷語句,但是不寫下一步語句,也可以。
5、接著用多級if語句創建了下圖多級判斷程序,可以實現根據輸入的字母,輸出對應參數b的值,而且不會區分字母大小寫,因為同一判定條件加入了字母大小寫形式。但是如果條件再多,程序將會無限延長,可以用其他思路,進行解決。
6、這里采用數組預先儲存判斷條件,及參數b的值,因為條件相同,用for循環加上一條條件判斷,即可實現多級條件功能。但是要注意,條件形式要相同,否則不能寫成統一形式。這樣如何使用,及一種可行的替換思路,介紹完成。
轉載請注明出處華閱文章網 » matlabif循環語句