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 這樣從語法上來說,不存在錯誤了 但是執行結果似乎找不到解,這就取決於 這個模型是否有解,你給的初值是否在...