如何修改代码字中的两位?

时间:2017-07-02 14:45:00

标签: matlab vector

原则: 我有一个代码字u,我想改变你的4位中的所有2位。

示例:if JsonReader jsonReader = Json.createReader(new StringReader("your_string")); JsonObject json = jsonReader.readObject(); JsonObject rates = json.getJsonObject("rates"); Double no=rates.getJsonNumber("BGN").doubleValue(); ,我想获得:

u = [1 1 0 0]

计划:

u1 = [0 0 0 0] ; u2 = [0 1 1 0] ; u3 = [0 1 0 1];
u4 = [1 0 1 0] ; u5 = [1 0 0 1] ; u6 = [1 1 1 1];

我需要将我的程序推广到你的所有长度并缩短它,因为如果你的长度很大,那么就很难以这种方式进行。

有人可以帮助我推广我的程序并缩短程序吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

一个简单的解决方案可能是:

  u = [1 1 0 0];
  us = []; % all possible u
  k = 2;
  n = length(u);
  C = nchoosek(1:n,k);
  notC = ~u(C); % flip value of the specified elements of u
  for i = 1:size(notC,1)
      uTemp = u;
      uTemp(C(i,:)) = ~u(C(i,:));
      us = [us; uTemp];
  end