怎麼用matlab生成迴圈矩陣,matlab,怎樣將每次迴圈中生成的值存在一個矩陣裡?要簡單的方法。。。。。。

2022-12-22 08:06:13 字數 3871 閱讀 2050

1樓:影子愛蟲蟲

[email protected]% n點迴圈卷積

x1=[x1 zeros(1,n-length(x1))];

x2=[x2 zeros(1,n-length(x2))];

m=0:n-1;

t=0:n-1;

x2=x2(mod(-m,n)+1);

%反折h=zeros(n,n);

for n=1:n

m=mod(m-n+1,n);

h(n,=x2(m+1);

%迴圈移位

m=t;

end要生成一個n*n方陣,第一行是a1,a2,.,an,第二行是an,a1,a2,.,a(n-1),第三行以此類推,請問怎樣根據已知的向量a來生成迴圈矩陣:

a=[1:10];

n=length(a);

n=zeros(n);

for j=1:n

n(j,:)=circshift(a,[0,j-1]);end

2樓:一夜冷夢

樓上方法不錯!不過有個筆誤,a改成a

或用circshift迴圈移位函式也可以

a=[1:10];

n=length(a);

n=zeros(n);

for j=1:n

n(j,:)=circshift(a,[0,j-1]);

end自己看著辦

matlab,怎樣將每次迴圈中生成的值存在一個矩陣裡?要簡單的方法。。。。。。

3樓:依然特雷西

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、按回車鍵之後,就完成了。

4樓:匿名使用者

你每次迴圈生成的值是什麼形式——標量,向量,矩陣,或是不定?標量的情況最簡單,如果是向量和矩陣,就要考慮你打算用什麼樣的形式儲存了。

通常採用兩種方法(以標量為例):

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

前一種做法用起來可能更省事一些,但如果迴圈次數多,陣列反覆自動擴充套件會造成效率很低,這種情況應該考慮使用第二種方法。

5樓:匿名使用者

一。設 i 為迴圈次數,且只有一個迴圈,a 為要儲存的矩陣,b 為每次迴圈生成的資料。

那麼就在迴圈裡寫

a(i)=b;

二。設 i 為外迴圈次數,j 為內迴圈次數,a 為要儲存的矩陣,b 為每次內迴圈生成的資料。

那麼就在迴圈裡寫

a(i,j)=b;

如何用matlab生成迴圈矩陣我需要生成一個

6樓:匿名使用者

用circshift迴圈移位函式

a=[1:10];

n=length(a);

n=zeros(n);

for j=1:n

n(j,:)=circshift(a,[0,j-1]);end

(matlab)使用for迴圈產生以下矩陣:

7樓:匿名使用者

clear;

clc;

a(4,3)=0;

a(1,1)=4;

for i=1:3

a(i+1,1)=a(i,1)+6;

endfor j=1:2

a(1,j+1)=a(1,j)+4;

endfor i=2:4

for j=2:3

a(i,j)=a(i-1,j)+6;

endend

a執行結果:

8樓:匿名使用者

迴圈結構:for語句

格式:for 迴圈變數=表示式1:表示式2:表示式3迴圈體end

【注】:表示式1:迴圈變數初值,

表示式2:步長,為1時,可省略;

表示式3:迴圈變數終值。

或:for迴圈變數=矩陣表示式

迴圈體end

【注】:執行過程是依次將矩陣的各列元素賦給迴圈變數,然後執行迴圈體語句,直至各列元素處理完畢。

matlab中for迴圈的具體用法如下:

matlab 如何將for每迴圈一次產生的矩陣合併成一個大矩陣

9樓:匿名使用者

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

10樓:郭某人來此

搞定了,絕對是最簡潔,執行效率最高的演算法,就是不知道你能不能看懂。

程式如下:

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

11樓:匿名使用者

把此例子看懂

k = 0;

a = zeros( 3,1 );

for i = 1:3

k = k + 1 ;

a(i,1) = k ;

enda 回車鍵

12樓:匿名使用者

再迴圈里加a=[a,a(n)];

初始a=a1;

MATLAB如何生成這樣的矩陣 矩陣為1行254列,由1,2,3,4,5,6,7這幾個數字組成,組成規則是

x,y,z ndgrid 1 7 p x y z 獲得所copy有可能的3個數的排列 r p 1 p 2 p 2 p 3 p r,除去有連bai續值得排列a zeros 1,254 a 1 3 p 1,選取dup的第一行作為最開始三個數p 1,刪除掉該zhi行,不再允許該組合dao出現for ii ...

用matlab如何求矩陣和數相乘

a 1,2,3 4,5,6 b a 2 c 1,2 1,2 1,2 d a c b b 2 4 6 8 10 12 d d 6 12 15 30 直接乘就可以,比如3 x 怎樣用matlab求矩陣的乘積 用matlab求矩陣 復的乘積 一般乘法 制a b a baib代表兩個du矩陣。b 2,5,8...

用matlab怎麼在矩陣後面加入一列自己想加的內容

其實這種不好用矩陣表示,因為資料格式不一樣。最好的方法是matlab中的table或cell,推薦table。第一列是券商,第二列是市盈率,第三列是排名。為了實現你說的排名方法,應該在加兩列,倒騰資料用,然後刪除。假設券商m個,temp cell m,4 tab cell2table temp,va...