【问题标题】:give all integers between two numbers in MATLAB在MATLAB中给出两个数字之间的所有整数
【发布时间】:2015-07-12 05:44:46
【问题描述】:

需要一些提示,我如何编写一个名为 int_col 的函数,它有一个输入参数、一个大于 1 的正整数 n 和一个输出参数 v,它是一个长度为 n 的列向量,包含所有更小的正整数大于或等于 n,以这样一种方式排列,即向量的任何元素都不等于它自己的索引。换句话说,对于任何有效的索引 k,v(k) 都不等于 k。

我使用了这个代码

function v = int_col(n)
    v = [n:-1:1]'
end

但是求解器给我输入参数 3 的错误

【问题讨论】:

  • 这不是我们为您做作业的网站。
  • 考虑查看stackoverflow.com/tour 以了解 SO 的工作原理。
  • 我不是要你这样做,我只是想知道如何继续
  • @alishaali 不,你不是。您的问题以“编写函数”开头。如果您要求提示,请说出来,并解释您遇到的问题。
  • 我知道如何在两个数字之间生成随机数,但是我如何在两个给定整数之间生成所有整数

标签: matlab random numbers integer


【解决方案1】:

她是一个使用循环的解决方案:

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
end
v = v';
end

【讨论】:

  • n 你使用了哪个输入?
  • 对我来说很好,没有错误。只需复制我的代码并在命令窗口 int_col(2) 或 int_col(3) 中尝试
  • 可能是您在另一个程序中使用它并且它需要列向量而不是行向量?那么你只需要转置上面代码示例的输出
  • 非常感谢您的帮助。如果我问这个问题太直接了,我很抱歉。这是我第一次。谢谢
  • 没关系 :) 下次提问时尝试添​​加一些您已经尝试过的代码或方法。
【解决方案2】:
function[v]=int_col(n)
v=zeros(n,1);
k=1:n;
p=cat(2,k(n),k(1:n-1));
v=p'
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    相关资源
    最近更新 更多