※ 引述《Willful1 (自强不息!!)》之铭言:
: 引用原po文章,再请教大家2个小问题
: 若是有3个(或以上)数列
: x=(x1,x2,…,xn)
: y=(y1,y2,…,yn)
: z=(z1,z2,…,zn)
: 1.
: 该如何才能整理成一个数列
: [(x1,y1,z1),(x2,y2,z2),……,(xn,yn,zn)]
xyzMat = [x; y; z];
% [x1, x2, ..., xn]
% = [y1, y2, ..., yn]
% [z1, z2, ..., zn]
% 法一
xyzArray = reshape(xyzMat, []).';
% 法二
xyzArray = xyzMat(:).';
: 2.
: 经过一些运算后,数列中元素的数目减少为
: [(x1,y1,z1),(x2,y2,z2),……,(xm,ym,zm)]
: 如何借由找出y中的最大值ym的方式,
: 顺带找出与ym同组的xm以及zm?
% 法一: 你指定的方式
% yMaximum
% xyzArray = [(x1,y1,z1),(x2,y2,z2),……,(xm,ym,zm)]
% iY = [ 2 5 3*M-1 ]
% idxYmax = 2
%
iY = 2:3:3*m;
[yMax, idxYmax] = max(xyzArray(iY));
iYmax = iY(idxYmax);
iXmax = iYmax - 1;
iZmax = iYmax + 1;
xMax = xyzArray(iXamx);
zMax = xyzArray(iZmax);
% 法二: 建议的方式
%
% 1. 把 xyzMax 看成 column vector 组成的 array
% 这样就不用 xyzArray 了
%
% xyzMat = [v1, v2, ..., vn]
%
% [xi]
% vi = [yi] = xyzMat(:, i)
% [zi]
%
% 2. 若要删除某组可以这样
%
% iDelete = 2;
% xyzMat(:, iDelete) = [];
%
% [x1, x3, ..., xn]
% xyzMat = [y1, y3, ..., yn]
% [z1, z3, ..., zn]
%
% = [v1, v3, ..., vn]
%
[yMax, iYmax] = max(xyzMat(2, :))
xMax = xyzMat(1, iYmax);
zMax = xyzMat(3, iYmax);
or
[~, iYmax] = max(xyzMat(2, :))
vYMax = xyzMat(:, iYmax)
: 谢谢大家帮忙
: ※ 引述《sju93404077 ()》之铭言:
: : 我是Matlab新手,想请各位高手帮忙协助
: : 问题如下
: : Sim1=[xxx];
: : Sim2=[AAA];
: : .
: : .
: : .
: : Sim24=[CCC];
: : 输出成一个阵列
: : Sim1 Sim2 ... Sim24
: : Sim=[ , , ... , ];
: : 要如何去撰写
: : 麻烦提示一下,万分感谢。