matlab程式設計問題,迴圈語句怎麼加

時間 2022-01-31 09:35:56

1樓:匿名使用者

建議把主程式修改如下:

r=0.0425;

%t: time to expiration

t=2;%輸入年數

%dp:defaut point

%sd: short debt,  ld: long debt

in = xlsread('資料-修改後.xls','b2:e118');

n = size(in,1);

out = cell(n+1,5);

out(1,:) = ;

for ii=1:n

sd=in(ii,1);%輸入

ld=in(ii,2);%輸入

%計算違約點

%dp=sd+0.5*ld;

dp=sd+0.5*ld;

%d:debt maket value

d=dp;%債務的市場價值,可以修改

%theta: volatility

%pricetheta:  volatility of stockprice

pricetheta=in(ii,3);%(輸入)

%equitytheta: volatility of theta value

equitytheta=pricetheta;

%assettheta: volatility of asset

%e:equit maket value

e=in(ii,4);%(輸入)

%va: value of asset

%to compute the va and assettheta

[va,assettheta]=kmvoptsearch(e,d,r,t,equitytheta)

%計算違約距離

dd=(va-dp)/(va*assettheta);

%計算違約率

edf=normcdf(-dd);

out(ii+1,:) = ;

endxlswrite('out.xls',out);

說明:1、我的系統裡直接讀xlsx檔案有點問題,原因懶得查了,另存成xls檔案操作。

2、程式執行後生成out.xls檔案,題主可以根據自己的需要進行修改。

2樓:匿名使用者

dd和edf輸出不成功解決方法:去掉分號 dd=(va-dp)/(va*assettheta) edf=normcdf(-dd)

matlab程式設計問題-迴圈語句怎麼加?

3樓:匿名使用者

「樣本量100多個」體現在**?

換句話說,主程式裡需要進行迴圈的量是什麼?輸出是那個變數,要求什麼形式?

matlab程式設計迴圈判斷語句

4樓:天文曙暮光

clear

clcf=0;

i=1;

g1=1/abs(pi*f*2*i + 1);

while(g1>0.707)

g1=1/abs(pi*f*2*i + 1);

f=f+1;

enddisp(f)

比較笨的辦法。i是什麼?沒說清楚

5樓:

syms f

t = 1/abs(pi*f*2*i + 1)-0.707;

f = double(solve(t));

matlab程式設計-for迴圈和if語句

6樓:匿名使用者

按照你的說法,是算從0變到1的次數,而不單純是變化(0變1或者1變0),用不著什麼 for, if,直接

length(find(diff(a) == 1))就可以了

如果非要用for, if

s = 0;

for n = 1:length(a)-1,if a(n+1) - a(n) == 1,s = s + 1;

endends

7樓:匿名使用者

不用迴圈

a=[0 1 1 0 1 0];

s=sum(abs(diff(a)))

如果題目一定要用for和if

a=[0 1 1 0 1 0];

s=0;

for n=1:length(a)-1

if a(n)-a(n+1)

s=s+1;

endends

8樓:匿名使用者

a=[0 1 1 0 1 0];

n=length(a);

b=ones(1,n)

c=a.*b

n=length(find(c==0))

怎麼感覺是3次呢

matlab 中while迴圈語句的用法?

9樓:丿

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;

endend

假設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 將控制權返回給呼叫函式。

10樓:劉斌

while語句用法如下:

格式:while(條件)

迴圈體end

【注】:條件成立時,執行迴圈體

擴充套件資料:

matlab注意事項:

一、安裝出錯時,可換註冊碼繼續安裝,到同一目錄;

二、【謹記】安裝路徑不要有中文名稱;

三、成功安裝完畢之後,如果遇到matlab啟動後,視窗在開啟一到兩秒後就自動關閉了, 可按以下方法試試:【假設你安裝的目錄為c:\matlab\】(不過不建議安裝到c盤,那樣會影響系統速度!

)1、確認安裝好後,在此路徑下c:\matlab\bin\win32有乙個名為 atlas_athlon.dll的檔案;

2、我的電腦上右擊點"屬性",再在"高階"中點"環境變數",在"系統變數"中點選 "新建" 輸入以下資訊:變數名:blas_version 變數址:

c:\matlab\bin\win32\atlas_athlon.dll

3、這樣之後,啟動matlab,不過又出現乙個問題:視窗顯示

to get started, select matlab help or demos from the help menu. the element type "name" must be terminated by the matching end-tag "".

could not parse the file:c:\matlab\toolbox\ccslink\ccslink\info.xml

【解決方案】找到c:\matlab\toolbox\ccslink\ccslink\info.xml這個檔案,用記事本開啟【注意,這是重點,或者寫字板】找到有一行這樣的link for code composer studio?

/name>,大概是在第七行吧,把這句的/name>改成【加左尖括號】,儲存檔案,退出,即可。

4、安裝matlab成功!

無法執行可以考慮使用相容模式執行,比如windows 2000模式

11樓:匿名使用者

用法如下:

matlab中while迴圈的語法是

while

end只要表示式(expression)為true,while迴圈將重複執行程式語句(statements)。

當結果為非空並且包含所有非零元素(邏輯或實數)時,表示式(expression)為true。 否則,表示式(expression)為false。

擴充套件資料:

迴圈語句種類如下

一、計次迴圈

迴圈體內的命令重複執行指定的次數。提供的整數引數值決定將重複執行的次數。

計次迴圈首 (迴圈次數, 已迴圈次數變數)

計次迴圈尾 ()

二、判斷迴圈

根據提供的邏輯引數的值,來決定是否進入迴圈。如果提供的邏輯引數值為真,程式順序執行下一條命令進入迴圈,否則跳轉到本命令所對應的「判斷迴圈尾」命令的下一條命令處以跳出迴圈。

判斷迴圈首(條件)

判斷迴圈尾 ()

三、迴圈判斷

迴圈判斷尾為迴圈的條件所在,根據提供的邏輯引數的值,來決定是否返回到迴圈首部繼續進行迴圈。如果提供的邏輯引數值為真,程式返回到對應的「迴圈判斷首」命令處繼續進行迴圈,否則順序執行下一條命令退出本程式迴圈。

迴圈判斷首 ()

迴圈判斷尾 (條件)

12樓:雪窗螢火

像這種迴圈語句的用法對於我來說真的是一點都不懂的,不好意思的。

13樓:匿名使用者

num=0;

i=0;

while (i<64)

a = 2 ^i;

num=num+a;

i = i + 1;end

14樓:

matlab while迴圈的用法。while迴圈的使用與for迴圈是類似的。但是其中還是有不少的區別,例如對於迴圈次數而言,while迴圈的次數是不定的,而for迴圈如果你不加上判斷語句他會一直迴圈下去的。

matlab while 迴圈介紹

15樓:熱心網友

這個問題太專業了,你可以問問其他人

16樓:匿名使用者

clc;

clear;

i = 0;

temp = 0;

while( i < 64 )

temp = temp + 2^ i;

i = i + 1;end

17樓:匿名使用者

a=1;sum = 0;count = 0;while 1 sum = sum+a; a = a*2; count = count +1;if count> 63 break;endend

18樓:匿名使用者

首先你實現乙個求冪次的迴圈函式,然後呢?再套用一層for迴圈去呼叫這個迴圈函式,就可以了,希望可以幫到你

matlab寫迴圈語句問題

19樓:

其實一句話就行了。

假設你已經給a和t賦值了,即

a=1;t=2;

而且你已經得到了k,如果只有一行的話,那就沒必要k(1,i),只需要k(i)就行,而且matlab裡邊這個不用迴圈,這樣就行:

result=sum(4*sin(a*k/(1+a)).*sin(a*k/(1+a)).*sin(k*t)./(2*k+sin(2*k)));

下邊是我測試的圖

matlab程式設計時怎樣呼叫迴圈中每次得到的值

方法一 儲存每次迴圈結果 方法二 把迴圈放置在外層,將你主調程式放置內部 matlab,怎樣將每次迴圈中生成的值存在乙個矩陣裡?要簡單的方法。1 第一步開啟matlab,命令列視窗輸入a 1 4 6 7 8 9 建立矩陣。2 第二步輸入b reshape a,1,6 將a矩陣變成行向量,其中1是1行...

VB程式設計新手問題,VB程式設計中的迴圈問題

隨便畫乙個按鈕叫command1,option explicit private q x private sub command1 click command1.caption q int x rnd end sub private sub form load q array 你好 你今年多大 喂 ...

關於matlab程式設計出現的問題,關於matlab程式設計出現的問題

少了乙個end,for迴圈,if語句等都需要end收尾,而function則不需要這樣,所以不應該在函式的最後加end,而是在前面加,就像樓上那樣。還有弱弱地問下b i,j 是個數值把,k好像是個矩陣,兩個怎麼比呢,是不是第乙個迴圈有點問題?還有你說輸出的r1會是11個結果,但是你定義的好像是乙個1...

matlab程式設計問題,急求,急求這個matlab程式設計題目怎麼做,好難

將 線之間的內容存為 sanjiaoxing.m function s,r,r sanjiaoxing l 輸入正三角形邊長l 輸出三角形面積s,內切圓半徑r 外接圓半徑rs sqrt 3 8 l r 2 l sqrt 3 r l sqrt 3 執行結果 help sanjiaoxing 輸入正三角...

matlab迴圈輸出每次迴圈計算的結果

用乙個變數儲存結果就行。如先定義 d zeros 1,0000 idx 0 程式中加入計數的變數,for迴圈內部加入 idx idx 1 for迴圈內部d用d idx 代替。迴圈結束後,d d 1 idx 這個d中就儲存了計算過程中所有的計算結果 假設你要的結果是你程式中的d ans 121這時出來...