user defined function including a for loop taking vector input giving vector output

1 view (last 30 days)
Hello,
myfunc1 takes in a vector and gives out a vector as expected.
but myfunc2, which has a for loop, takes in a vector and gives out a scalar value of 1.
can you please help me to fix myfunc2 so that it gives out a vector, which is a vector of :
(summation from 1 to 1, summation from 1 to 2, summation from 1 to 3, ..., summation from 1 to 10)
thank you //:-)
---------
clear all
clc
x=[1:10];
%myfunc2(x)
myfunc1(x)
function [y2]=myfunc2(p)
k=0;
for t=1:p
k=k+t;
end
y2=k;
%y2=p+1;
end
function [y1]=myfunc1(p)
y1=p+1;
end

Accepted Answer

Austin M. Weber
Austin M. Weber on 11 Feb 2024
Is this what you are trying to do?
x = 1:10;
result = myfunc2(x)
result = 1×10
1 3 6 10 15 21 28 36 45 55
function [y2]=myfunc2(p)
k=0;
y2 = [];
for t = 1:length(p)
k = k + t;
y2 = [y2 k];
end
end

More Answers (1)

Torsten
Torsten on 11 Feb 2024
Edited: Torsten on 11 Feb 2024
p = 10;
result = myfunc2(p)
result = 1×10
1 2 4 7 11 16 22 29 37 46
function [y2]=myfunc2(p)
y2 = zeros(1,p);
y2(1) = 1;
for t=1:p-1
y2(t+1)=y2(t)+t;
end
end

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!