Matlab for 循環語句
沒仔細研究你那個擬合函數的用法。
不過像這種需要分段處理數據的情況很多,有種在 matlab 里很常用的技巧感覺你可以學學:
假設原始數據(xdata)是一列 100 個數,你需要一次處理 13 個,那么下面這段代碼先將這 100 數“折疊”成一個 13 行的矩陣(x)。 我這個例子里是折疊成 13 * 8 的矩陣了。
因為 100 不能整除 13,所以會在最后補零。如果你不需要補零,而是把最后的零頭扔掉,那么就把
ncol = ceil(nxdata/n);改成
ncol = fix(nxdata/n);最后就可以在循環里一列一列的處理數據了。我這個例子只是 y(:,i) = x(:,i) 而已,你的情況應該就是調用你自已寫的擬合函數。
最后再用
y = y(:);把數據還原成一維的。
如果你需要把之前補零的值刪掉也可以在還原成一維的時候去掉。
以下是一個小例子,仔細研究一下就能學會這個小技巧了。
xdata = (1:100).';
nxdata = length(xdata);
nrow = 13; % 假設你需要一次處理 13 個數據
ncol = ceil(nxdata/nrow);
x = zeros(nrow, ncol, 'like', xdata);
size(x)
x(1:nxdata) = xdata(:);
y = zeros(nrow, ncol, 'like', xdata);
for i = 1:ncol
y(:,i) = x(:,i);
end
y = y(:);如果你在處理數據之前,能保證折疊之后是整除的,即無需補零。還用我這個小例子,比如需要折疊成 10 行,也可以用 reshape(xdata, 10, [])。[] 是讓 matlab 自己算整除后是多少列。如:
x2 = reshape(xdata, 10, []);
size(x2)
Matlab for循環語句
示例1:
x =
0.5878 0.9511 0.9511 0.5878 0.0000 -0.5878 -0.9511 -0.9511 -0.5878 -0.0000
示例2:
array =
6 3 7 8 5 1 2 4 9 10
x1 =
0.5878 0.9511 0.9511 0.5878 0.0000 -0.5878 -0.9511 -0.9511 -0.5878 -0.0000
換一個matlab運行就可以
matlab中for循環
程序實現的功能: 矩陣a如下 12 13 14 15 16 17 18 19 20 21 22 23將矩陣a的每一行相加求和,得到一個列向量經過轉置成行向量clear;clcs=0; %賦給s初值0a=[12,13,14;15,16,17;18,19,20;21,22,23]; %4*3矩陣afor k=a %k取a的每一列(不是每一個值或每一行),進行循環s=s+k %每一列對應的元素相加,迭代求和enddisp(s') %轉置,將列向量轉化為行向量運行結果如下:s = 12 15 18 21s = 25 31 37 43s = 39 48 57 66 39 48 57 66你看一下結果就知道了。
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的for循環語句