Matlab中循環體中的循環變數怎麼在運行後顯示為它代表的數字?
可能說的不太清楚,比如for i=1:15
Ki=i+5 end 我本意是求K1 K2 K3...可是這樣程序會認為Ki為一個變數名,並不能按我意願表達,爪機大的,描述和排版可能都有問題
讓我想到了我一個師弟C++的代碼
for(int i = 0; i != n; ++i)
{
for(int j = i; j != n; ++ j)
{
file_out &<&< "i_j.txt" &<&< endl;
}
}
K做成一個矩陣不行嗎?反正你變出來K1-K15之後,下次還是不能寫Ki。
如果題主指的是按照index i循環完後顯示每個i所指示的array[i],那麼有以下兩種方法。
我們可以不斷地給在數組K結尾添加新的元素。
K = [];
for i = 1:100
K = [K, i+5];
end
disp(K);
% or disp(K(j)) for the j you want.
通常上面這種做法MATLAB會提示你fix,因為不斷改變數組的大小,效率太低。通常這種做法只有在無法提前確定數組的長度時才使用。
如果能夠提前知道result數組的大小,可以這樣:K = zeros(1,100);
for i = 1:100
K(i) = i+5;
end
disp(K);
% or disp(K(j)) for the j you want.
for i = 1:5
eval(["k", num2str(i), "= i + 5"])
end
我90年用小霸王學習機學習BASIC語言編程時候遇到和你同樣的問題。後來在譚浩強的書裡面找到了答案。
for i =1:15
eval(["K",num2str(i),"=i+5;"]);
end
這個題目太模糊了。最簡單的方法就是Kitemp=[];for i=1:5Ki=i+5;kitemp=[Kitemp Ki];end
輪帶逛。。輪子哥說的對呀。。不太懂提問者為何一定要這樣。
如果一定要這樣可以用eval
for k = 1:15 eval(["K",num2str(k),"=k+5"]);end但是你不覺得K作為一個矩陣或者向量不是更好嗎。。K = (1:15)+5就ok了除非有明確需要,推測應該是matlab初學者一個偽需求。話說明明可以存到向量里,這樣也方便後面使用啊,我大matlab哪裡需要辣么多單個的變數
很簡單呀,給Ki的i加個括弧完事了
@vczh輪子哥說的做成一個矩陣
for i = 1:15 k(i) = i + 5; endk這樣子就可以顯示辣%%%%{matlab中帶分號的一行不會顯示結果,不帶分號的一行會顯示結果,這個特性可以用來給循環計數。}%%%循環里寫eval(sprintf("k%d=%d
",i,i+5));完成
建議學習編程不要跳躍式進行
推薦閱讀:
※學習哪種編程語言可以用來開發很多有意思東西?
※學習 C++ 編程,怎麼才能找到合適的練手項目?
※沒參加過ACM如何訓練數據結構與演算法能力?
※未接觸過編程的妹子希望通過做小項目來學習編程,有哪些類型的項目比較適合?
※先學什麼編程語言比較好 你們有沒有後悔過?
TAG:編程語言 | 編程 | MATLAB | 編程學習 | Matlab2013A |