MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

0

Does someone know how to print a square onto the command window using for loops????

Kevin Junior さんによって質問されました 2013 年 9 月 17 日
最新アクティビティ Walter Roberson
さんによって 編集されました 2018 年 6 月 26 日
for 1:5
fprintf('*') % am stuck right there

  0 件のコメント

サインイン to comment.

タグ

3 件の回答

回答者: Daniel Shub
2013 年 9 月 17 日
編集済み: Daniel Shub
2013 年 9 月 17 日

I am not sure why you want to use a loop or fprintf. The simplest, but potentially not square enough solution for a filled square
N = 5;
x = repmat(char(42), N, N);
disp(x);
*****
*****
*****
*****
*****
For an unfilled square you can do
N = 5;
x = repmat(char(42), N, N);
x(2:end-1, 2:end-1) = char(32);
disp(x);
*****
* *
* *
* *
*****
On my system I get a squarer square with
x = repmat([char(42), char(32)], N, N)
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Depending on how perfect you want, maybe you could use a thin space or a wide space.
For a filled diamond
a = [fliplr(tril(true(N))), tril(true(N)); triu(true(N)), fliplr(triu(true(N)))];
x = repmat(char(32), 2*N, 2*N);
x(a) = char(42);
disp(x)
**
****
******
********
**********
**********
********
******
****
**
For an empty diamond
a = [fliplr(triu(tril(true(N)))), triu(tril(true(N))); tril(triu(true(N))), fliplr(tril(triu(true(N))))];
x = repmat(char(32), 2*N, 2*N);
x(a) = char(42);
disp(x)
**
* *
* *
* *
* *
* *
* *
* *
* *
**
If you really need to use fprintf
y = mat2cell(x(:), ones(numel(x), 1), 1);
fprintf([repmat('%s', 1, 2*N), '\n'], y{:})

  2 件のコメント

I am trying to print a diamond with an empty space in the middle using fprintf statements
See my edit for diamonds.

サインイン to comment.


回答者: Simon
2013 年 9 月 17 日

Hi!
You should start reading here: http://www.mathworks.com/help/matlab/control-flow.html This explains how to use loops and their syntax.
What do you mean with "square"?

  3 件のコメント

like printing shapes using asterix, for instance a rectangle, a square, a diamond i know I will definitely have to use nested loops
Filled or outline only?
Some of the shapes will not require nested for loops.
unfilled diamond using just fprintf statements

サインイン to comment.


回答者: Kambiz Hosseinpanahi 2018 年 6 月 26 日
編集済み: Walter Roberson
2018 年 6 月 26 日

clc
clear
n=10;
A=repmat(char(42),n,n);
A(1:end-1,2:end)=char(32);
for i=2:10
A(i,i)=char(42);
end
disp(A);

  0 件のコメント

サインイン to comment.



Translated by