How can I use a string input in a "for" loop to get a matrix of names?

조회 수: 2 (최근 30일)
Sina Keshavarz
Sina Keshavarz 2017년 2월 1일
댓글: Zhigang 2017년 2월 3일
for i=0:2
a(i)=input('enter your name?','s')
end
what's wrong with this code? Matlab cannot read names I give to it. and here is the error: "Subscript indices must either be real positive integers or logicals."
  댓글 수: 2
Stephen23
Stephen23 2017년 2월 1일
Note: the original question used an if:
if i=0:2
a(i)=input('enter your name?','s')
end
Zhigang
Zhigang 2017년 2월 3일
i should be started from 1. for i = 1:6 ....

댓글을 달려면 로그인하십시오.

답변 (2개)

Alexandra Harkai
Alexandra Harkai 2017년 2월 1일
The problem with this code is that (in MATLAB) indexing is from 1, not 0. Therefore a(0) is giving you the error.
As for the for loop (not if), if you want 3 inputs:
for i=1:3
a(i)=input('enter your name?','s');
end
  댓글 수: 1
Star Strider
Star Strider 2017년 2월 1일
That’s not the only problem. For any name longer than one letter, it will throw a
Subscripted assignment dimension mismatch.
error.
You have to use a cell array (notice the curly brackets ‘{}’ designating it as a cell array):
for i=1:3
a{i}=input('enter your name?','s');
end
Note: In all answers and comments, please test your code before posting it if at all possible. If you cannot, always label it as ‘untested code’.

댓글을 달려면 로그인하십시오.


Stephen23
Stephen23 2017년 2월 1일
편집: Stephen23 2017년 2월 1일
Your code has multiple mistakes: MATLAB indexing starts from one, you need to use a for loops, and you need to use a cell array:
N = 3;
C = cell(1,N);
for k = 1:N
C{k} = input('enter your name: ','s');
end
You should do the introductory tutorials, because they teach these very basic MATLAB concepts:
And also read this:

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by