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...