修改元素的矩阵指数(MATLAB)

5视图(30天)
高速
高速 2022年3月11日
评论道: 沃斯 2022年3月12日
我有一个元素的数量 例如 m = 4 。和维度的矩阵是广场 米*米
P =
1 2 3 4
2 3 4 3
3 4 3 2
4 3 2 1
使用下面的程序来取代指数 1、2、3……米 与这些:
m =输入(“初始化的元素个数”);%的元素矩阵
P =汉克尔(1:m m: 1:1);
%初始化的这些维度(m - 1 x m - 1)
一个= 0 (m - 1, m - 1, m - 2);
(::1)=眼睛(m - 1);%的第一子矩阵始终是一个单位矩阵P指数= 1
k = 2: m - 1
(:,:,k) = circshift ((:,:, k - 1), 1, 2);%的其他这些指数m - 1 = 2
结束
(:,:,m) = 0 (m - 1);%的最后子矩阵指数= m(总是空)
%替代这些指数的1、2、……m P
N = 0 (m * (m - 1));
一个= num2cell (a [1 - 2]);
2 = 1:m
jj = 1: m
N ((m - 1) * (ii-1) + 1: (m - 1) * 2 (m - 1) * (jj-1) + 1: (m - 1) * jj) = {P (ii, jj)};
结束
结束
我添加这部分程序找到总是两个指标 和= m 。例如在的情况下 m = 4 指数是 1 3 找到 1 + 3 = m
指数= 0;
总和(指数)~ = m
指数=兰迪([1 m - 1], [1,2]);
结束
因此,指数 2 这里没有使用。我们使用 1 , 3 m。
我需要添加一个prgram中的一部分 替换所有这些未使用的指标(在这个例子中指数2)零矩阵的矩阵n请我该怎么做。
4评论
高速
高速 2022年3月11日
@ _ 重复的指标,我仍然需要修改这一部分以这样一种方式防止重复。
我所说的零矩阵零矩阵(它的元素都是0)

登录置评。

接受的答案

沃斯
沃斯 2022年3月11日
这是一个函数可以用来得到一双随机指数,这些指数和m,但从未(m / m / 2):
函数idx = get_random_index (m)
如果国防部(m, 2)% m是奇怪:不可能从兰迪得到m / 2 ()
idx =兰迪([1 m - 1]);从兰迪()%只使用结果
其他的% m甚至:可以从兰迪得到m / 2(),所以使用兰迪()
% 1和m - 2之间得到一个整数,然后增加
% 1如果是> = m / 2,所以最终你会得到一个随机指数
% 1和m - 1不包括m / 2之间
%如m = = 4:
%兰迪()返回1:idx = 1
%兰迪()返回2:idx = 3
%如m = = 6:
%兰迪()返回1:idx = 1
%兰迪()返回2:idx = 2
%兰迪()返回3:idx = 4
%兰迪()返回4:idx = 5
idx =兰迪([1 m - 2]);
如果idx > = m / 2
idx = idx + 1;
结束
结束
idx = [idx m-idx];% 2指数的总和是m
结束
6个评论

登录置评。

更多的答案(0)

类别

找到更多的在调整和重塑矩阵帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!