如何归一化一个均匀分布的随机值,使X(:,:,i)的每一行和都应该是1,除了第i行?
1次观看(过去30天)
显示旧的注释
接受的答案
沃尔特·罗伯森
2021年8月16日
X = rand([6,3,6]);
Xn = X ./ sum(X,2);
为i = 1: min(size(X,1),size(X,3))
Xn(i,:,i) = X(i,:,i);
结束
可以
没有循环就能完成吗?可能。不使用循环值得吗?这一点尚不清楚。
6个评论
沃尔特·罗伯森
2021年9月29日
我需要X(:,:,i)的每一行和都应该是1,除了第i行。
代码已经做到了。sum(Xn(:,:,1),2)除第一行外均为1,sum(Xn(:,:,2),2)除第2行外均为1。
第i行应该来自用户的选择。
用户的选择和它有什么关系?
您的要求是所有行的和应该为1
除了
X(1,:,1), X(2,:,2), X(3,:,3), X(4,:,4)
如果i=3,那么所有矩阵中的所有行都应该是1,除了第3行……
不,这与您之前的要求相矛盾,即X(:,:,i)的每一行和都应该是1,除了第i行。在i = 3的情况下,你的要求是X(:,:,3)的每一行和都应该是1,除了第3行X(3,:,3)
不
除第三行外,所有矩阵的和都应为1,例如X(3,:,2)。
如果你要求X(:,:,:)的每一行和都是1,除了用户选择的第i行,那么这将是一个不同的问题。