作业帮 > 综合 > 作业

matlab 交换数表的排列顺序 为什么失败?

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/05/28 22:42:00
matlab 交换数表的排列顺序 为什么失败?
function b
n=2;
k=[2 1];
u=[-1 2];
for l=1:n
x(k(l))=u(k(l));
end
如上代码,k代表数排列的顺序,u是2个数,现在通过上边的程序,调整数的排列顺序.
运行不报错,但是结果却没有调整顺序,求大神指导是为什么?我觉得可能是x(k(l))=u(k(l))这里有问题,但我自己不知道是什么错误,求指导啊
matlab 交换数表的排列顺序 为什么失败?
function x = b
n=2;
k=[2 1];
u=[-1 2];
for l=1:n
x(l)=u(k(l));
end
% 调用
> x = b
x =
2 -1
再问: 应该是我问题没说清楚,我想要达到的是 输入k=[3 1 2] u=[5 3 8] 运行得到x=[3 8 5] k中数字为顺序号,u中数字为k中各个顺序号对应的值,通过程序将u中数字按照顺序号从小到大重新排列得到x。 还有x(k(l))=u(k(l))有什么错吗,为什么
再答: function x = b(k,u); n = size(u,2); for l = 1:n x(l) = u(k(l)); % k 中数值作为 u 的索引,取出 u 值赋值予 x end; % x(k(l))=u(k(l)) k(I) = 1:2 x(1:2)=u(1:2) 那么 x = u