matlab中把3萬多行1列的矩陣去除最大元素,求程式設計

2021-04-18 22:33:00 字數 4084 閱讀 4354

1樓:匿名使用者

假設復你的那個矩制

陣叫vector

newvector=vector(vector~=max(vector));

如果不需

要保留原來的矩陣,可以這樣

vector(vector==max(vector))=;

2樓:匿名使用者

把資料發上來,好幫你做。

有乙個4*5矩陣,用matlab程式設計求出其最大值及其所在的位置

3樓:世界的偏角

matlab求最大值直接呼叫求最值的函式 max 函式就好了。例如矩陣為 a ,那麼求最值即為 max_a = max( max(a) ) , [m,n] = find( max_a == a )

程式中出錯的原因可能是因為第一行結束的分號是中文分號,換成非英文分號就好。

matlab 中的 max 函式是求最大值的函式。

1、如果 a 是向量,則 max(a) 返回 a 的最大值。

2、如果 a 為矩陣,則 max(a) 是包含每一列的最大值的行向量。

3、如果 a 是多維陣列,則 max(a) 沿大小不等於 1 的第乙個陣列維度計算,並將這些元素視為向量。此維度的大小將變為 1,而所有其他維度的大小保持不變。如果 a 是第乙個維度長度為零的空陣列,則 max(a) 返回與 a 大小相同的空陣列。

這也是求矩陣的最大值需要使用兩個 max 函式的原因。使用 find 函式可以找到矩陣中等於最大值的位置。

4樓:僅僅是追憶

輸入該行後面的分號

是錯誤的。它不應該是中文的。英語角應該是一半。或者簡單地刪除分號。

執行結果是:a =

1     2     3     4     52     3     4     5     61     4     3     3     21     3     5     7     3max =7

maxi =4

maxj =4

5樓:大野瘦子

a=floor(1+9*rand(4,5))

max=a(1,1);

maxi=1;

maxj=1;

for i=1:4

for j=1:5

if a(i,j)>max

max=a(i,j);

maxi=i;

maxj=j;

endend

endmax

maxi

maxj

注:你的問題錯在第一句後多了乙個中文的。

matlab中max的用法

一、求矩陣a的最大值的函式有3種呼叫格式,分別是:

1、max(a):返回乙個行向量,向量的第i個元素是矩陣a的第i列上的最大值。

2、[y,u]=max(a):返回行向量y和u,y向量記錄a的每列的最大值,u向量記錄每列最大值的行號。

3、max(a,,dim):dim取1或2。dim取1時,該函式和max(a)完全相同;dim取2時,該函式返回乙個列向量,其第i個元素是a矩陣的第i行上的最大值。

求最小值的函式是min,其用法和max完全相同。

二、 matlab中max函式在矩陣中求函式大小的例項如下:

c = max(a)

1、返回乙個陣列各不同維中的最大元素。

2、如果a是乙個向量,max(a)返回a中的最大元素。

3、如果a是乙個矩陣,max(a)將a的每一列作為乙個向量,返回一行向量包含了每一列的最大元素。

4、如果a是多維陣列,max(a)treats the values along the first non-singleton dimension as vectors, returningthe maximum value of each vector.

6樓:赫力封亦玉

input那行後面的分號錯了,不應該用中文全形的,應該用英文半形的。或者乾脆去掉分號。

執行結果如下:

輸入乙個4*5矩陣[12345;23456;14332;13573]a=12345

23456

14332

13573

max=

7maxi=

4maxj=

4順便說一句,matlab有現成庫函式,你幹嘛非要自己編啊。

a=rand(4,5)%取隨機數,也可以像你那樣input手工輸入。

[m,ind]=max(a(:))%最大值及其索引,a(:)把矩陣轉換成向量

[i,j]=ind2sub(size(a),ind)%最大值下標

7樓:天雲一號

可以利用max函式求出最大值及其所在的位置,具體實現可參考如下**:

% 函式檔案fun.m

function [maxv, row, col] = fun(x)

[maxv1, ~] = max(x, , 1);  % 獲取每列的最大值

[maxv2, ~] = max(x, , 2);  % 獲取每行的最大值

[maxv, col] = max(maxv1);  % 獲取x每列最大值的最大值(即x的最大值,max預設獲取沒列最大值),以及maxv1中最大值所在的位置(x的最大值所在的列數)

[~, row] = max(maxv2);  % 獲取x每行最大值的最大值(即x的最大值,max預設獲取沒列最大值),以及maxv2中最大值所在的位置(x的最大值所在的行數)

% 主檔案main.m

x = [2     8     4     5     6

7     3     9     3    13

23     3    12    17    11

2    34     7    12     9];

[maxvalue, row, col] = fun(x);  % 執行後,輸出maxvalue=34,row=4,col=2

8樓:匿名使用者

matlab 中 「i」為虛數單位,不能作為迴圈變數,可以把裡面的i改為ii。

9樓:敬亞君

必須輸入乙個4*5矩陣,

matlab 如何用max函式計算乙個矩陣中某一行的最大值

10樓:淘子和她的魚

命令:>> max(z1(1,:))

其中抄z1(1,:)中1表示

第1行,冒襲號:表示第1行所有元素bai。

max求乙個陣列的最du大元素函式。zhi用法c = max(a)

返回乙個陣列各不

dao同維中的最大元素。

如果a是乙個向量,max(a)返回a中的最大元素。

如果a是乙個矩陣,max(a)將a的每一列作為乙個向量,返回一行向量包含了每一列的最大元素。

如果a是多為陣列,max(a) treats the values along the first non-singleton dimension as vectors, returning the maximum value of each vector.

c = max(a,b)

返回乙個和a和b同大小的陣列,其中的元素是從a或b中取出的最大元素。

c = max(a,,dim)

返回a中有dim指定的維數範圍中的最大值。

[c,i] = max(...)

找到a中那些最大值的索引位置,將他們放在向量i中返回。如果這裡有多個相同最大值時,返回的將是第乙個的索引。

11樓:匿名使用者

>> z1=[3,5;4,10]

z1 =

3 5

4 10

>> max(z1(1,:))

ans =5

matlab中如何求乙個矩陣中最大元素的下標

12樓:計算天下

首先[c1,i1]=max(a)返回矩陣a的每一列的最大值和它所在的行數。

然後回[c2,i2]=max(c1)返回向量c1的最大值和它的位置。

因此,答矩陣a的最大值下標為a(i1(i2),i2)。

具體參見matlab自帶幫助。

在matlab中怎樣取矩陣的列向量呀

直接對矩bai陣進行取列操du 作,如 a 2,3,1 3,0,7 2,9,7 1,3,2 a a 1 將矩陣a的第zhi一列全部取出dao來,並專賦值給變數a,此時屬變數就是乙個列向量,其維數與矩陣a的行數一致。執行完以上程式段後,a 2,3,2,1 a矩陣第j列,就是a j 第i行就是a i,初...

1行3列的矩陣能求秩麼,3行3列矩陣行列式的值怎麼算

d。求a的行列式,a 的所有行加到第一行,第一行提取公因子,第一行乘以 1加到下面各回行,則 a 1 n 1 a 1 a n 1 若答a的秩是n 1,則 a 0,解得a 1或1 1 n a 1時,a的秩是n 1。a 1 1 n 時,a 0,a的前n 1行n 1列構成的子式非零,所以a的秩是n 1。3...

在excel中如何把A列和B列中4位數的數字放在C列

呵呵,榜眼考慮的太多了 if len a1 4,a1,b1 當然,這個公式的意思是a1 b1總有乙個必須是4位數字。我看你的要求也是總有乙個是4位數字,所以我就簡化公式了。如果不是我上面的假設,那就用 ybcxj2008 的公式。當然 ybcxj2008的公式也包含了我公式,但是假設你本就符合我的假...