storing fprintf as an array.

1 回表示 (過去 30 日間)
Jide Williams
Jide Williams 2020 年 3 月 3 日
コメント済み: Jide Williams 2020 年 3 月 3 日
The outcome of the code below gives H T H T T depending on random function. How do I store the outcome of the 20 iterations into a variable called 'product' ; for example: product =[ H T H T T......] so that whenever I need it, I can fetch the outcome by just typing 'product'
fprintf('The Outcomes are:\n')
for i = 1:20
A = rand(i,1);
if A(i) >= 0.5000
fprintf('%s\n', 'H');
else
fprintf('%s\n', 'T');
end
end

採用された回答

David Hill
David Hill 2020 年 3 月 3 日
Why do a loop?
product=rand(1,20);
product(product>=.5)=72;
product(product<.5)=84;
product=char(product);
  1 件のコメント
Jide Williams
Jide Williams 2020 年 3 月 3 日
Thanks, i needed the for loop because I want to perform a Monte Carlo Analysis. This is better in loops

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2020 年 3 月 3 日
Outcome(i) = 'H';
The closest to your current code would be
Outcome{i} = sprintf('%s\n', 'H') ;
  4 件のコメント
Walter Roberson
Walter Roberson 2020 年 3 月 3 日
No. You call
A = rand(i, 1)n
That defines A to be a column vector of random numbers with i values in the vector. In the next line you access A(i) which is only the last of those values and not any of the values before that. But when you are examining to see whether the code works, you are reading off the first of the values, not the last. Or perhaps after the loop you are examining A, but since you overwrite all of A each time, the values that were used to make the decision have been thrown away and replaced by new values before you look.
Your code should be:
A(i) = rand(1,1);
Jide Williams
Jide Williams 2020 年 3 月 3 日
Yeah i have seen my mistakes. Thans

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeAdding custom doc についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by