1樓:匿名使用者
你每次迴圈生成的值是什麼形式——標量,向量,矩陣,或是不定?標量的情況最簡單,如果是向量和矩陣,就要考慮你打算用什麼樣的形式儲存了。
通常採用兩種方法(以標量為例):
1、把新的結果存在下標為end+1的位置,陣列會自動擴充套件,例如:
a=; for i=1:10, a(end+1)=i^2; end
2、預置陣列(一般使用zeros),並設定一個計數器標記陣列當前的儲存位置,然後用該計數器作為下標進行儲存。例如:
a=zeros(10000,1); idx=0; while idx<10000, idx=idx+1; a(idx)=idx^(1/idx); end
前一種做法用起來可能更省事一些,但如果迴圈次數多,陣列反覆自動擴充套件會造成效率很低,這種情況應該考慮使用第二種方法。
matlab,怎樣將每次迴圈中生成的值存在一個矩陣裡?要簡單的方法。。。。。。
2樓:依然特雷西
1、第一步開啟matlab,命令列視窗輸入a=[1 4 6;7 8 9] ,建立矩陣。
2、第二步輸入b=reshape(a,1,6),將a矩陣變成行向量,其中1是1行,6是a矩陣的元素個數。
3、按回車鍵之後,可以看到a矩陣已經變成行向量了。
4、輸入b=[a(1,:),a(2,:)],通過矩陣裁剪的方式,也可以將矩陣變成行向量。
5、按回車鍵之後,就完成了。
3樓:匿名使用者
你每次迴圈生成的值是什麼形式——標量,向量,矩陣,或是不定?標量的情況最簡單,如果是向量和矩陣,就要考慮你打算用什麼樣的形式儲存了。
通常採用兩種方法(以標量為例):
1、把新的結果存在下標為end+1的位置,陣列會自動擴充套件,例如:
a=; for i=1:10, a(end+1)=i^2; end
2、預置陣列(一般使用zeros),並設定一個計數器標記陣列當前的儲存位置,然後用該計數器作為下標進行儲存。例如:
a=zeros(10000,1); idx=0; while idx<10000, idx=idx+1; a(idx)=idx^(1/idx); end
前一種做法用起來可能更省事一些,但如果迴圈次數多,陣列反覆自動擴充套件會造成效率很低,這種情況應該考慮使用第二種方法。
4樓:匿名使用者
一。設 i 為迴圈次數,且只有一個迴圈,a 為要儲存的矩陣,b 為每次迴圈生成的資料。
那麼就在迴圈裡寫
a(i)=b;
二。設 i 為外迴圈次數,j 為內迴圈次數,a 為要儲存的矩陣,b 為每次內迴圈生成的資料。
那麼就在迴圈裡寫
a(i,j)=b;
matlab 怎麼在for迴圈中儲存每一次迴圈得到的值並儲存在矩陣中?
5樓:無為
matlab下標是用括號表示的
l = 4; % l劃分層數
for i = 1:l-1;
b_latitude=pi/l; % l劃分層數
latitude(i)= i*b_latitude; %第i層時的緯度
latitude(i)= pi-i*b_latitude; %計算天頂距
b_longitude(i)= acos((cos(b_latitude)-(cos(latitude(i)))^2)/(sin(latitude(i)))^2); %每層上的經度差
ni=floor(2*pi/b_longitude(i)); %每條緯線上的格網點數
for j=1:ni;
longitude(i,j)= (j - 0.5)*2*pi/ni; %經度
endend
matlab 如何將for每迴圈一次產生的矩陣合併成一個大矩陣
6樓:匿名使用者
a=;for i=1:10 %a1至a10eval(['a',num2str(i),'=','rand(2,5)']); %a1至a10都是2行五列的矩陣,這個要改成你想要的
eval(['a=[a;a',num2str(i),'];']); %組合a=[a1;a2;a3;...]end
7樓:郭某人來此
搞定了,絕對是最簡潔,執行效率最高的演算法,就是不知道你能不能看懂。
程式如下:
clear;
clc;
x = rand(10,5); %%%%% 自己定義的矩陣
k = 3;
[a b] = size(x);
for ii = 1:k
var = x(ii:k:a,:);
eval(strcat( 'a',num2str(ii),'=var'));
end結果:
a1 =
0.2137 0.6103 0.3124 0.6759 0.4301
0.2296 0.9325 0.2905 0.3991 0.7425
0.9621 0.5735 0.6147 0.1051 0.4293
0.0058 0.2235 0.8272 0.3545 0.8497
a2 =
0.3978 0.8011 0.5845 0.2489 0.5722
0.9361 0.7633 0.4026 0.5994 0.7579
0.4380 0.7926 0.9912 0.8214 0.9563
a3 =
0.3337 0.2330 0.8299 0.4758 0.7008
0.6832 0.8264 0.8621 0.8005 0.3891
0.9403 0.3290 0.2037 0.8411 0.5730
8樓:匿名使用者
把此例子看懂
k = 0;
a = zeros( 3,1 );
for i = 1:3
k = k + 1 ;
a(i,1) = k ;
enda 回車鍵
9樓:匿名使用者
再迴圈里加a=[a,a(n)];
初始a=a1;
matlab中如何將多個矩陣儲存到同一個矩陣中?
10樓:四舍**入
%% 為了能批量進行,使用了eval函式
% 首先,為自己產生一個a,b,c,...的矩陣3*3的;
for index=1:17
eval([char(64+index) '=rand(3);']);
end% 從下邊開始是存到一個檔案當中。
delete([pwd '\data.txt']);
for index=1:17
end擴充套件資料:matlab函式列舉:
cot( )餘切(變數為弧度)
sind( )正弦(變數為度數)
cotd( )餘切(變數為度數)
asin( )反正弦(返回弧度)
acot( )反餘切(返回弧度)
asind( )反正弦(返回度數)
tand( )正切(變數為度數)
abs( )取絕對值
atan( )反正切(返回弧度)
angle( )返回複數的相位角
horcatc=[a,b],水平聚合矩陣,還可以用cat(1,a,b)
vercatc=[a;b],垂直聚合矩陣, 還可以用cat(2,a,b)
11樓:tn瓶邪
可以把每次計算出的矩陣a儲存到一個元胞結構data中for i = 1:n
a = 你的操作;
data = a;
end下次從data中取矩陣,可以這麼寫a = data ;
12樓:匿名使用者
function mywritetotxt(a,address)%待儲存資料:a
%儲存檔案:address
fid=fopen(address,'a');
[r,v]=size(a);
for i=1:r
for j=1:v
fprintf(fid,'%d\t',a(i,j));
endfprintf(fid,'\n ');
endfprintf(fid,'\n ');
fclose(fid);
a=ones(17,17);
b=2*a;
c=3*a;
mywritetotxt(a,address);
mywritetotxt(b,address);
mywritetotxt(c,address);
matlab 迴圈中如何儲存尺寸不同的矩陣
13樓:匿名使用者
for ii=1:10
a=randn(2,ii);
enda,a,a
14樓:w鴻鵠之志
您好,這個問題解決了嗎
如何將matlab 每次迴圈計算矩陣 合併到一個矩陣中? 5
15樓:蝶夢
在迴圈前定義空矩陣a=;,在迴圈中定義temp矩陣進行操作裝填,並且利用a=[a;temp]進行合併。
這種方法在迴圈中每次都改變了矩陣a的大小,實現了對迴圈中每一次結果的記錄。
[a;b]實現了在矩陣列數相等的情況下列向合併矩陣,[a b]實現了矩陣行數相等的情況下橫向合併矩陣。
如何將Excel資料匯入MATLAB中
豆其英磨香 matlab如何匯入excel資料的方法如下 1 一xlsread 函式,比import簡單的多,具體語句 a xlsread yourfilename.xls 直接在matlab中定義矩陣,再複製貼上得了 定義矩陣就先定義個空的 比如一維 a zeros 1,n 這是1xn的 2 二維...
如何將Excel資料匯入MATLAB中
將excel中的資料匯入matlab中可以使用 xlsread 命令,也可用uiimport直接匯入 1.使用 xlsread命令 num xlsread filename num xlsread filename,sheet num xlsread filename,xlrange num xls...
如何將matlab中多幅圖合成為一幅圖
1 首先,我們隨機產生三組範圍不同的資料,資料量都為500,他們的邊界分別為 10,15 23,38 38,58 方法如下 x1 10 5 rand 500,1 x2 23 15 rand 500,1 x3 38 20 rand 500,1 2 下面,我們要分別畫出x1,x2,x3對應的曲線,用ma...