Is it possible to make an array in a function then substitute a certain element to another element. I have a beam equation with certain forces on different parts. So I created a variable for the length and am given an expression for the whole beam. So I split the equation into multiple parts and now want to evaluate each piece through different lengths. Any help would be appreciated. Thanks

 采纳的回答

Geoff
Geoff 2012-2-3
From your description I gather that you want to swap out a range of values from an array into new indices within that array. You can modify values in a range by simply passing that range as a subscript on the left and passing new values (the same length) on the right...
Let's say I have the array:
x = 1:20
I can swap 5 elements from either end like this:
x([1:5 15:20]) = x([15:20 1:5])
Or duplicate sections
x(1:4) = x(5:8)
Or just mess it up
x([5 9 20 13:16]) = x([1 4 7 10 11 18 19 20])

1 个评论

Thanks for the input and I even tried it that way but because of the sizing I couldn't do it like that because I couldn't always break the elements up into what I needed. I did solve it though with the sign operator which allowed the program to auto size the elements needed in the array.

请先登录,再进行评论。

更多回答(1 个)

function beam(x)
x1 = linspace(0,x);
n=length(x1);
for j=1:n
y(j) = -5/6.*(sign(x1(j),0,4)-sign(x1(j),5,4));
y(j) = y(j) + 15/6.*sign(x1(j),8,3) + 75*sign(x1(j),7,2);
y(j) = y(j) + 57/6.*x1(j)^3 - 238.25.*x1(j);
end
plot(x1,y)
This is what it turned out to be. I had to break the polynomial up into three separate equations.

类别

在 帮助中心 和 File Exchange 中查找有关 Mathematics 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by