matlab 矩陣賦值,不要用迴圈

時間 2021-09-21 09:55:40

1樓:匿名使用者

你這個需求很奇葩。

你想想程式的三種結構無非是順序、選擇、迴圈。你不讓用迴圈,就只能用b=[a a ... a]這種方式了。

其實個人感覺這種方式一般都需要用迴圈來解決,如果你感覺迴圈慢(說實話,我不清楚你迴圈慢的結論怎麼得出來的?即使慢也和迴圈沒什麼關係吧!),那你可以減少迴圈次數,例如:

b=;for i=1:n

b=[b a a];

end這裡面的a個數由你根據需要來不定期。

2樓:笑面彌勒

可以使用repmat函式

以下是matlab中關於此方法的解釋

b = repmat(a,m,n) creates a large matrix b consisting of an m-by-n tiling of copies of a. the size of b is [size(a,1)*m, size(a,2)*n]. the statement repmat(a,n) creates an n-by-n tiling.

3樓:匿名使用者

>> a=[1 2 6 4 8 7 8];

>> b=repmat(a,1,4)

b =columns 1 through 131 2 6 4 8 7 8 1 2 6 4 8 7

columns 14 through 268 1 2 6 4 8 7 8 1 2 6 4 8

columns 27 through 287 8

4樓:g弦上de詠歎

b = repmat(a,m,n) 用來將矩陣a複製m*n塊,即b是由m*n塊a平鋪而成

matlab陣列迴圈賦值問題

5樓:匿名使用者

result=;

for i=1:1:length(data)if data(i)>20

result=[result;data(i)];

endend

請問,在matlab裡如果我想用for迴圈對一個矩陣賦值,比如for i=1:10 n(i)=i; end

6樓:匿名使用者

沒有問題呀,我在命令視窗中是這樣寫的,沒發現問題。你看一下是不是書寫格式有問題。

for i=1:10

n(i)=i;

endn

7樓:我都知道了哦

這樣寫可以的。

下面這段**沒有問題:

for i=1:10

n(i)=i;end

matlab中怎麼給矩陣賦值?

8樓:劉瑞濤

x=1:0.1:10;

y=;for i=1:length(x)%

y=[y;x(i)];%把每一個x都放到y裡,成為一列

y=[y,x(i)];%把每一個x都放到y裡,成為一行

end>> a=rand(10,10);

>> a(3:9,2:8)=10

a =0.1622    0.4505    0.

1067    0.4314    0.8530    0.

4173    0.7803    0.2348    0.

5470    0.9294

0.7943    0.0838    0.

9619    0.9106    0.6221    0.

0497    0.3897    0.3532    0.

2963    0.7757

0.3112   10.0000   10.

0000   10.0000   10.0000   10.

0000   10.0000   10.0000    0.

7447    0.4868

0.5285   10.0000   10.

0000   10.0000   10.0000   10.

0000   10.0000   10.0000    0.

1890    0.4359

0.1656   10.0000   10.

0000   10.0000   10.0000   10.

0000   10.0000   10.0000    0.

6868    0.4468

0.6020   10.0000   10.

0000   10.0000   10.0000   10.

0000   10.0000   10.0000    0.

1835    0.3063

0.2630   10.0000   10.

0000   10.0000   10.0000   10.

0000   10.0000   10.0000    0.

3685    0.5085

0.6541   10.0000   10.

0000   10.0000   10.0000   10.

0000   10.0000   10.0000    0.

6256    0.5108

0.6892   10.0000   10.

0000   10.0000   10.0000   10.

0000   10.0000   10.0000    0.

7802    0.8176

0.7482    0.4427    0.

8001    0.1450    0.2400    0.

1112    0.0598    0.4509    0.

0811    0.7948

>>

matlab 裡面給變數賦值空矩陣是什麼意思啊

是為了在每一個新的j重新從1開始迴圈的時候保證tpvalue初始化沒有任何值。的實際效果就是清空一個變數。 龍口真祖 new 生成一個長度大小不定的空矩陣,可以通過new new x 進行元素或向量的新增,其中x就是要新增進這個矩陣的元素或向量。比如 new a 1 b 2 new new a ne...

為何在matlab上為複數賦值最好不要用3 4i的形式而是用3 4 i或者指數的形式

劉賀 就是說單個複數的生成是可以這樣的 clear all clc a 2 2i a 1 i,3 2i 4 3i,5 2i 但成批操作,涉及到矩陣或陣列則不可以這樣 clear all clc a 1,3,4 4,5,6 b 3 4 5 4 5 7 c a bi 這樣就不行了,必須 clear al...

Matlab矩陣相乘的問題

t 0 0.1 10 w 188.5 1 exp 0.2 t t 0.1 10 exp 0.2 t p t.w 你用計算器的話,你得小心,你的 0.2 t這個要先算。你是科學計算器嗎?即便是的話,也注意一下優先順序。 t 0 0.1 10 w 188.5 1 exp 0.2 t t 0.1 10 e...