Need help with looping to populate matrix using if statement
1 view (last 30 days)
Show older comments
clc;
clear all;
close all;
load('Stress_Strain.mat')
count = 0;
for i = 1:1000
if Stress_Strain_2(:,2) == count;
StressStrain(i,2) = Stress_Strain_2(i,2);
end
count = count + 0.001
end
% for i = 1:1000
%
% if Stress_Strain_2(i,2) = count && Stress_Strain_2(i,2) > 0.0999;
% Percent_Strain_2(1,2) = Stress_Strain_2(i,2);
% Percent_Strain_2(1,1) = Stress_Strain_2(i,1);
% elseif Stress_Strain_2(i,2) < 0.2001 && Stress_Strain_2(i,2) > 0.1999;
% Percent_Strain_2(2,2) = Stress_Strain_2(i,2);
% Percent_Strain_2(2,1) = Stress_Strain_2(i,1);
1 Comment
Answers (2)
Walter Roberson
on 7 Mar 2016
Two floating point numbers constructed different ways often do not exactly equal each other. You should be testing for being "close" rather than being "equal".
You also have the problem that
if Stress_Strain_2(:,2) == count
means the same thing as
if all(Stress_Strain_2(:,2) == count)
which is to say that all of the items in the column would have to be the same value, all exactly equal to what is in "count". This is unlikely to be what you wanted. You did not describe your desired match condition, so I cannot repair the code. Possibly you want
if any(Stress_Strain_2(:,2) == count)
except with correction for tolerances. Perhaps
if ismembertol(count, Stress_Strain_2(:,1))
0 Comments
See Also
Categories
Find more on Stress and Strain in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!