starrr
starrr

Reputation: 1023

Put data from user in matrix with loop in matlab

I'm new in matlab, I've searched a lot but I didn't find my answer. I want to get data from user in a for loop and put that data in matrix. I used this code:

npattern=inputdlg('Enter the number of Patterns');
a=npattern(1,1);
for i=1 : a(1,1);
    r=inputdlg('Enter Data');
    end
end

But it doesn't work for me. What should I do now?

Upvotes: 0

Views: 533

Answers (2)

Luis Mendo
Luis Mendo

Reputation: 112659

Assuming your r can contain strings (not just numbers):

npattern=inputdlg('Enter the number of Patterns');
a=str2num(npattern{1});
for ii=1:a;
    r{ii}=inputdlg('Enter Data');
end

Comments:

  • inputdlg returns a cell array of strings
  • it's bet not to use i as a variable (i is sqrt(-1) by default)
  • r in your code is overwritten at each iteration. Better use a cell array
  • there is one end too many

Upvotes: 2

Franck Dernoncourt
Franck Dernoncourt

Reputation: 83157

x=inputdlg('Enter the number of Patterns');
data = str2num(x{:}); 
r = zeros(data, 1);
for i=1:data
    x = inputdlg('Enter Data');
    r(i, 1) = str2num(x{:});
end

Upvotes: 1

Related Questions