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:5

Ki=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;

end

k

這樣子就可以顯示辣

%%%%{matlab中帶分號的一行不會顯示結果,不帶分號的一行會顯示結果,這個特性可以用來給循環計數。}%%%


循環里寫

eval(sprintf("k%d=%d
",i,i+5));

完成


建議學習編程不要跳躍式進行


推薦閱讀:

學習哪種編程語言可以用來開發很多有意思東西?
學習 C++ 編程,怎麼才能找到合適的練手項目?
沒參加過ACM如何訓練數據結構與演算法能力?
未接觸過編程的妹子希望通過做小項目來學習編程,有哪些類型的項目比較適合?
先學什麼編程語言比較好 你們有沒有後悔過?

TAG:編程語言 | 編程 | MATLAB | 編程學習 | Matlab2013A |