How would I take the fprintf statement and values and input into a matrix?

data = fopen('PH.csv');
pH = textscan(data,'%s %d','delimiter',',');
fclose(data);
rows = size(pH{1});
name = pH{1};
pH = pH{2};
for i = 1:rows
if pH(i) > 7
acid_base{i} = 'It is a base';
elseif pH(i) < 7
acid_base{i} = 'It is an acid';
else
acid_base{i} = 'It is neutral';
end
end
for i = 1:rows
fprintf('%s - pH: %d \n %s\n',name{i},pH(i),acid_base{i});
end
data = fopen('PH.csv');
pH = textscan(data,'%s %d','delimiter',',');
fclose(data);
rows = size(pH{1});
name = pH{1};
pH = pH{2};
for i = 1:rows
if pH(i) > 7
acid_base{i} = 'It is a base';
elseif pH(i) < 7
acid_base{i} = 'It is an acid';
else
acid_base{i} = 'It is neutral';
end
end
for i = 1:rows
fprintf('%s - pH: %d \n %s\n',name{i},pH(i),acid_base{i});
end

2 Comments

Instead of displaying the name, pH, and acidity using a fprintf statement, how would I display it in an array?

Sign in to comment.

Answers (2)

Use sprintf to create formatted character vectors that you can store for later use.
pH = 1:14 ;
S = cell(length(pH),1) ;
for i = 1:length(pH)
    val = pH(i) ;
    if val < 7
        S{i} = sprintf('pH = %f,solution is acidic',val) ;
    elseif val ==7
        S{i} =  sprintf('pH = %f,solution is neutral',val) ;
    elseif val > 7
        S{i} =  sprintf('pH = %f,solution is basic',val) ;
    end
end

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Asked:

on 16 Apr 2018

Answered:

on 16 Apr 2018

Community Treasure Hunt

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

Start Hunting!