matlab 矩阵 元素

来源:百度知道 编辑:UC知道 时间:2024/08/23 11:37:50
for j=1..4;
for k=1..4;
x=[1 2 3 3 4 ;6 56 8 3 ;85 6 8 4 ;6 4 8 2];
x(i,j)
我需要把矩阵中的任意元素,提取出来,求出元素最大的两个元素之和!~请指教

b=sort(x(:))
s=sum(b(end-1:end))

能不能把问题具体一点。第一,你的X矩阵不同维,第二循环变量没有i,第三,却缺乏结束的“end”,不知道你要干嘛?
你的元素最大是指矩阵中所有元素的最大两个么?你做双重循环找遍元素后,可以用if语句,替换大小,最后把替换得到的两数相加。
比如:X=[];(你自己的矩阵,假设4行5列)n=0;(假设你元素都是正的)
for i=1:1:4
for j=1:1:5
if X(i,j)>n
n=X(i,j);
num1=i;
num2=j;
end
end
end
disp(num1,num2)
这样找到最大数,以及它的位置,将其赋值为0后,再运行一遍就找到第二大的数了,加和就好了。如果不需要知道具体的数及其位置,只要知道加和的值的话,一两行就可以的。比如先从小到大排序,再输出最后两个元素的和。

一:X为M*N维
for i=1:2
r=rand()*m*n %生成0到m*n随机数
R=fix(r)%取整
a(i)=X(R);
end
二:
b=sort(x(:))%排序函数
s=sum(b(end-1:end))