matlab中錯誤使用ones Size輸入必須為標量。X ones size a ,1 ,x1,x

2021-03-22 12:16:46 字數 6036 閱讀 8261

1樓:匿名使用者

題主的**,由於錯誤使用size函式,而導致出錯。 輸入必須為標量。從

size()函式是用於計算陣列的大小,即輸出該陣列的 m行,n列的具體數值。

size函式的常用使用格式:

m=size(x) %返回行和列的數值

[m,n]=size(x) %返回m行和n列的數值szdim=size(x,dim) %返回維度 dim 的長度所以,題主給出的**應該為

x=[ones(size(a)),x1,x2];

matlab x=[ones(size(x)) x];表示什麼意思?

2樓:工科天蠍男

就是構造一個新的矩陣x,它的左半部分是和矩陣x一樣行列數的全1矩陣。

size就是獲得一個矩陣行和列的個數(若是3維矩陣或更高維矩陣也一樣)

ones則是構造一個元素全是1的矩陣,行列數根據輸入的數調整。

舉個例子:

若原矩陣x=[0 1;2 3] 即一個兩行兩列矩陣,元素從左到右,從上到下依次為0、1、2、3

則語句執行後為:

x =1 1 0 11 1 2 3

矩陣左半部分產生一個兩行兩列全1矩陣。

3樓:元齊伏囡囡

matlab中ones(size(x,1),1)表示生成一個行數與x一致,列數等於1且所有元素都是1的矩陣。也就是說生成一個元素為全為1的列向量,這個列向量的行數和矩陣x的行數一樣。

詳細解析:

size(x,1) 獲取矩陣x沿著第一個維度的長度,也就是獲取x的行數

ones(m,n) 生成一個m行n列且所有元素都是1的矩陣示例如下:

在matlab命令視窗輸入如下**:

>>x=

[123;456]%

x是一個2行3列的矩陣

>>ones(size(x,1),1)

%生成一個行數與x一致的列向量

結果如下:

錯誤使用 ones size 輸入必須為整數. 200

4樓:匿名使用者

x=-8:0.5:

8;表示從-8到8以步長(間隔)0.5取數生成行陣列(一行共33個數,-8-7.5-7.

07.07.58)。

y=x';表示y為x的轉置,生成列陣列(一列共33個數,與x值一樣)。x=ones(size(y))*x;中,ones函式用於生成全一陣列(即陣列中全部元素都是1),size(y)表示求取y的大小,其值應為[331];ones(size(y))就是生成一個33×1的全一列陣列,x=ones(size(y))*x就是用33×1的全一列陣列與行陣列x做矩陣乘法,得到x為33×33的二維陣列(每一行都是33個數,-8-7.5-7.

07.07.58,總共33行);同理,y也為33×33的二維陣列(每一列都是33個數,-8-7.

5-7.07.07.

58,總共33列);r=sqrt(x.^2+y.^2)+eps;中x.

^2表示對x做陣列乘方運算,即對x中的每一個元素做平方,sqrt表示開平方,eps表示機器浮點運算誤差限,是一個很小的值2^(-52),在此其作用在於不讓下一步的運算(z=sin(r)./r;)產生分母為零的情況;z=sin(r)./r;中sin表示求正弦值,sin(r).

/r表示求取r的正弦值後與r再做陣列除法,即兩陣列對應元素一一對應做除法;mesh(z);表示繪製z陣列的網格線條三維影象;colormap([1,0,0])表示繪圖所用的色標,在這裡第一個值為1應該是紅色([0,10]表示綠色;[0,0,1]表示藍色)。這個解釋已經很詳細了,我想不會有人再不計麻煩的打這麼多字了,如還有疑問可參考matlab的幫助文件和相關參考書,程式設計還得靠自己鑽研,類似程式分析的提問一般很難得到回答的。祝你學習進步!

matlab中ones(size(x,1),1)是什麼意思?

5樓:匿名使用者

matlab中ones(size(x,1),1)表示生成一個行數與x一致,列數等於1且所有元素都是1的矩陣。也就是說生成一個元素為全為1的列向量,這個列向量的行數和矩陣x的行數一樣。

詳細解析:

size(x,1)    獲取矩陣x沿著第一個維度的長度,也就是獲取x的行數

ones(m,n)    生成一個m行n列且所有元素都是1的矩陣

示例如下:

在matlab命令視窗輸入如下**:

>> x = [1 2 3;4 5 6]  % x是一個2行3列的矩陣

>> ones(size(x,1),1)  % 生成一個行數與x一致的列向量

結果如下:

6樓:匿名使用者

生成一個列向量,該向量的元素個數與陣列x的行數相同,值全部為1。

7樓:謝俊佚

生成一個全為1的矩陣,或者叫列向量,其行數與x相同,列數為1

8樓:匿名使用者

生成和x行數一樣全1 行向量

matlab中u=ones (size(t))什麼意思

9樓:我行我素

size(t)是取t的行數和列數,

ones (size(t))是矩陣的所有元素為1

u就生成為所有元素為1的矩陣

matlab中的a=[x',y',ones(size(x'))]; a=a\z'是什麼意思?

10樓:匿名使用者

建立一個矩陣a,它有三列,第一列是x的共軛轉置(如果x是實的,那麼就是轉置),第二列是y的共軛轉置,第三列全是1。然後求這樣的a,使得a*a=z'(z的共軛轉置)。

誰能幫我看看matlab,x=ones(size(y))*x;什麼意思啊 15

11樓:匿名使用者

就是構造一個新的矩陣

x,它的左半部分是和矩陣x一樣行列數的全1矩陣。size就是獲得一個矩陣行和列的個數(若是3維矩陣或更高維矩陣也一樣)ones則是構造一個元素全是1的矩陣,行列數根據輸入的數調整。舉個例子:

若原矩陣x=[01;23]即一個

看到matlab 中一段程式,a = [x' ones(length(x),1)]; 求解

12樓:匿名使用者

x應當是一維行向量,

x'共軛轉置後,變成一維列向量,尤其是實數時。

length(x)是求出x的元素個數

ones(length(x),1)是構造一個矩陣,length(x)行1列。

[x' ones(length(x),1)]等效於[x',ones(length(x),1)],即中間加逗號。

也就是將兩個列向量並列地放在一起。

最後形成:

[x1 1

x2 1

x3 1

x4 1

]一般這樣弄,用來直接擬合用的。

13樓:匿名使用者

x'是轉置,x一定是1行資料,那麼轉置後變成1列資料,而length(x)就是x的點數,ones(length(x),1)是生成與x點數相同的1列全是1的陣列,那麼a=[x' ones(length(x)),1)]就是2列資料,每列點數為length(x)(即x的點數一樣)。

matlab中的n=size(x,2)是什麼意思

14樓:馬桶是你吧

就是構造一個新的矩陣x,它的左半部分是和矩陣x一樣行列數的全1矩陣。

size就是獲得一個矩陣行和列的個數(若是3維矩陣或更高維矩陣也一樣),ones則是構造一個元素全是1的矩陣,行列數根據輸入的數調整。

如果在size函式的輸入引數中再新增一項,並用1或2為該項賦值,則size將返回陣列的行數或列數。其中r=size(a,1)該語句返回的時陣列a的行數, c=size(a,2) 該語句返回的時陣列a的列數。

n=numel(a)該語句返回陣列中元素的總數。 n=length(a):如果a為非空陣列,返回行數和列數兩者之間數值較大的那一個值,即相當於執行了max(size(a));如果a為空陣列,則返回0;如果a是一個向量則返回a的長度。

n=max(size(a):若a為非空陣列,返回a的最大維數。

擴充套件資料

matlab是matrix&laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室)。是由美國mathworks公司釋出的主要面對科學計算、視覺化以及互動式程式設計的高科技計算環境。它將數值分析、矩陣計算、科學資料視覺化以及非線性動態系統的建模和**等諸多強大功能整合在一個易於使用的視窗環境中。

15樓:凌亂心扉

size(x,1),返回矩陣x的行數;

size(x,2),返回矩陣x的列數;

n=size(x,2),就是把矩陣x的列數賦值給n

1、s=size(a),\x0d當只有一個輸出引數時,返回一個行向量,該行向量的第一個元素時矩陣的行數,第二個元素是矩陣的列數.\x0d

2、[r,c]=size(a),\x0d當有兩個輸出引數時,size函式將矩陣的行數返回到第一個輸出變數r,將矩陣的列數返回到第二個輸出變數c.\x0d

3、size(a,n)如果在size函式的輸入引數中再新增一項n,並用1或2為n賦值,則size將返回矩陣的行數或列數.其中r=size(a,1)該語句返回的時矩陣a的行數,c=size(a,2)該語句返回的時矩陣a的列數.\x0d

size():獲取矩陣的行數和列數

1、s=size(a),

當只有一個輸出引數時,返回一個行向量,該行向量的第一個元素時矩陣的行數,第二個元素是矩陣的列數。

2、[r,c]=size(a),

當有兩個輸出引數時,size函式將矩陣的行數返回到第一個輸出變數r,將矩陣的列數返回到第二個輸出變數c。

3、size(a,n)如果在size函式的輸入引數中再新增一項n,並用1或2為n賦值,則size將返回矩陣的行數或列數。其中r=size(a,1)該語句返回的時矩陣a的行數,c=size(a,2)該語句返回的時矩陣a的列數。

另外,length()=max(size()).

c語言中

判斷資料型別長度符的關鍵字

用法sizeof(型別說明符)

sizeof表示式

定義sizeof是c/c++中的一個操作符(operator),簡單的說其作用就是返回一個物件或者型別所佔的記憶體位元組數。

msdn上的解釋為:

the sizeof keyword gives the amount of storage,in bytes,associated with a variable or a type(including aggregate types).this keyword returns a value of type size_t.

其返回值型別為size_t,在標頭檔案stddef.h中定義。這是一個依賴於編譯系統的值,一般定義為

typedef unsigned int size_t;

語法sizeof有兩種語法形式,如下:

sizeof(type_name);//sizeof(型別);

sizeof object;//sizeof物件;

所以,int i;

sizeof(i);//ok

sizeof i;//ok

sizeof(int);//ok

sizeof int;//error

sizeof計算物件的大小也是轉換成對物件型別的計算,也就是說,同種型別的不同物件其sizeof值都是一致的。sizeof對一個表示式求值,編譯器根據表示式的最終結果型別來確定大小,一般不會對表示式進行計算。如:

sizeof(2);//2的型別為int,所以等價於sizeof(int);

sizeof(2+3.14);//3.14的型別為double,2也會被提升成double型別,所以等價於sizeof(double);

sizeof也可以對一個函式呼叫求值,其結果是函式返回型別的大小,函式並不會被呼叫,我們來看一個完整的例子:

char foo()

int main()

matlab中如何使用if語句,Matlab中如何使用if語句?

巢狀if語句的語法如下 if executes when the boolean expression 1 is true if executes when the boolean expression 2 is true endend 例如 建立指令碼檔案並在其中鍵入以下 a 100 b 200 ...

Matlab中的butter函式使用問題

函式用法沒有問題。我這執行也沒有錯誤。你在butter函式上右鍵開啟那個檔案看看在不在?如果不在,我給你發個。如果在,看看reversion和data是多少。從錯誤提示bai來看,應du該是傳遞給butter函式的實參錯zhi誤。從樓主的調dao用來看應內該是下面這三種情況容 應該是少了一個引數,導...

關於matlab中fsolve函式的使用

m檔案修改如下 function a myfun x k 340 r 0.08 t 150 365 c 29.8299 p 8.8335 a blsprice x 1 k,r,t,x 2 c,p 這樣從語法上來說,不存在錯誤了 但是執行結果似乎找不到解,這就取決於 這個模型是否有解,你給的初值是否在...