【发布时间】:2021-06-12 19:40:27
【问题描述】:
我想创建一个矩阵,例如 1xn,其中 n 由另一个输入确定。 例如,我有以下内容:
Example = [3 5 7 9];
New_matrix = [int_col(Example (1)) int_col(Example (2)) int_col(Example (3)) int_col(Example (4))];
这个 New_matrix 就是我想要的输出。
但是,对于我的实际数据输入,我的示例矩阵是 1x47。 我怎样才能把它放在一个 for 循环中,以便它为所有长度示例提供 1 到指定数字的输出?(也保持水平)
这里添加了我使用的帮助功能:
% Helper function added as well
function v = int_col(n)
v = zeros(1,n);
for index=1:n
val = randi(n);
while (val == index || any(val == v))
val = randi(n);
if (index == n && (any(v == n) ~= 1))
val = n;
break
end
end
v(index) = val;
if (index == n && val == n)
% v(n) = v(n-1);
% v(n-1) = n;
end
if n == 1
v = 1;
end
end
v = v';
v = (sortrows(v))';
end
【问题讨论】:
-
根据您的第一个示例,您只需要linear indexing:
new_matrix = int_col(Example)。您问题的第二部分不清楚。
标签: arrays matlab for-loop matrix