如何在向量中存储输出?

时间:2016-07-18 14:06:59

标签: octave

我需要将函数的输出放入向量中。

事实上我的结果似乎是这样的:

ans= 

result 1

ans=

result2 

ans=

result3

......

我需要我的结果如下:

Vector= (result1
         result2
         result3
         ....)

我的职能部门是这样的:

function[keys]=generate()

    for k=1:257
      x= round(rand*9);
      vet = x*ones(1,16);
      i= round(rand*length(vet));
      i(i==0)=1;
      val= round(rand*257);
      vet(i)=val;
      keys=dec2hex (vet)
    endfor 

endfunction

如果你能帮助我,我将非常感激。

3 个答案:

答案 0 :(得分:1)

一般来说,这是一个非常含糊的问题。

如果你正在调用的函数返回多个东西,你可以在这样的向量中捕获它们:

[a, b, c] = myFunc()

如果您正在调用多个函数,每个函数存储一件事,您可以执行以下操作:

vec = []
a = myFunc1()
vec = [vec a]
a = myFunc2()
vec = [vec a]
etc...

或更短:

vec = [myFunc1() myFunc2() ... ]

好像您看到的ans输出是由于线上没有分号所致:

dec2hex(vet)

您应该将该输出保存到矢量中并返回:

function[keys]=generate()
  keys = [];
  for k=1:257
   x= round(rand*9);
   vet = x*ones(1,16);
   i= round(rand*length(vet));
   i(i==0)=1;
   val= round(rand*257);
   vet(i)=val;
   keys = [keys dec2hex(vet)];
 endfor % endfor for octave
endfunction

答案 1 :(得分:0)

很有可能你可以将你的语句包装到 result user aaa 1*0.3+2*0.35+0*0.4 bbb 0*0.3+10*0.35+11*0.4 ccc 0*0.3+1*0.35+2*0.4 ddd 1*0.3+2*0.35+3*0.4 eee 1*0.3+2*0.35+0*0.4 ans计算horzcat以实现你想要的目标。

答案 2 :(得分:0)

我会省略for循环,如果要生成随机整数,则应使用randi,例如索引。我想你想要分割生成密钥并将它们转换为十六进制,因为十六进制格式用于可视化。最后,我想这个问题会受到XY-problem

的影响
function keys = generate ()

  key_cnt = 5;
  key_offset = 9;
  key_length = 16;

  keys = ones (1, key_length) .* randi (key_offset + 1, key_cnt, 1) - 1;
  val = randi (2 ** 8, key_cnt, 1) - 1;
  i = randi (key_length, key_cnt, 1);
  ind = sub2ind ([key_cnt, key_length], 1:key_cnt, i');
  keys (ind) = val;

endfunction

function ret = hex_keys (k)

  ## convert keys to hex string
  for i = 1:rows (k)
    ret(i, :) = [sprintf("%02X ",k(i,1:15)), sprintf("%02X",k(i,16))];
  endfor

endfunction


k = generate ();
hex_keys (k)

给出

00 00 00 2A 00 00 00 00 00 00 00 00 00 00 00 00
03 03 C7 03 03 03 03 03 03 03 03 03 03 03 03 03
07 07 07 07 07 07 07 07 07 07 07 07 A7 07 07 07
03 03 03 03 03 03 03 8F 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 D0 03 03 03 03 03 03

如果你完成了测试,当然将key_cnt增加到257.