Clear Filters
Clear Filters

Function definition using a variable from a block based on a for loop

2 views (last 30 days)
Hi!
I would like to create a function in which the definition changes according to a for loop.
I have 2 row vectors from which I want to use values:
A=[1 2 3 4 5 6 7 8 9 10]
Att=[0 2 4 6 8 10 12 14 16 18]
An example:
function [a]=myf(Att)
a=Att(ii)*A(ii);
end
I would like to use the first elements of A and Att in the first cycle then the second and so on. My real function is a bit more complicated, my question is how can I change the variable inside the function according to a for loop.
Thank you!

Accepted Answer

Steven Lord
Steven Lord on 22 Apr 2021
For this I'd use one of two approaches.
A=[1 2 3 4 5 6 7 8 9 10];
Att=[0 2 4 6 8 10 12 14 16 18];
% Approach 1
y = myf1(Att, A);
for k = 1:numel(Att)
fprintf("Element %d of the result is %d\n", k, y(k))
end
Element 1 of the result is 0 Element 2 of the result is 4 Element 3 of the result is 12 Element 4 of the result is 24 Element 5 of the result is 40 Element 6 of the result is 60 Element 7 of the result is 84 Element 8 of the result is 112 Element 9 of the result is 144 Element 10 of the result is 180
% Approach 2
for k = 1:numel(Att)
y = myf2(Att, A, k);
fprintf("Element %d of the result is %d\n", k, y)
end
Element 1 of the result is 0 Element 2 of the result is 4 Element 3 of the result is 12 Element 4 of the result is 24 Element 5 of the result is 40 Element 6 of the result is 60 Element 7 of the result is 84 Element 8 of the result is 112 Element 9 of the result is 144 Element 10 of the result is 180
function a=myf1(Att, A)
a=Att.*A;
end
function a=myf2(Att, A, ii)
a=Att(ii)*A(ii);
end

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!