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這時出來...