erorr in for loop
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
could you please help me to correct these small calculations
w=0:0.02:5;
for i=1:length(w)
a(i)=w.^4-12.*(w.^2);
b(i)=w.^8-144.*(w.^4);
c(i)=9.*(w.^6)+256.*(w.^2);
Real(i)= a(i)/(b(i)+c(i));
end
thank you
0 Kommentare
Akzeptierte Antwort
CS Researcher
am 2 Mai 2016
.^ is for element wise operation. Use this:
w=0:0.02:5;
for i=1:length(w)
a(i)=w(i)^4-12*(w(i)^2);
b(i)=w(i)^8-144*(w(i)^4);
c(i)=9*(w(i)^6)+256*(w(i)^2);
Real(i)= a(i)/(b(i)+c(i));
end
Or better:
w=0:0.02:5;
a = w.^4-12.*(w.^2);
b = w.^8-144.*(w.^4);
c = 9.*(w.^6)+256.*(w.^2);
Real= a./(b+c);
3 Kommentare
Weitere Antworten (1)
Image Analyst
am 2 Mai 2016
Try this:

w=0:0.02:5;
a = w.^4-12.*(w.^2);
b = w.^8-144.*(w.^4);
c = 9.*(w.^6)+256.*(w.^2);
ratios = a ./ (b+c);
plot(w, ratios, 'b*-');
grid on;
% Set up figure properties:
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
% Get rid of tool bar and pulldown menus that are along top of figure.
set(gcf, 'Toolbar', 'none', 'Menu', 'none');
% Find w where ratios == 1
differences = ratios-1;
[minDifference, indexOfMin] = min(differences)
% Plot a circle there
hold on;
plot(w(indexOfMin), ratios(indexOfMin), 'ro', 'MarkerSize', 15, 'LineWidth', 2);
message = sprintf('ratios is closest to 1 at index %d where ratios(%d) = %f',...
indexOfMin, indexOfMin, w(indexOfMin));
uiwait(helpdlg(message));
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!