Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 10 months ago.
Improve this question
How do I swap an(example) array's second and third elements? I tried the following
def swap_elements(array)
array = ["blake", "ashley", "scott"]
array[1], array[2] = array[2], array[1]
end
but I get
: ["scott", "ashley"]
I lost the first[0] element
There are many ways to do this - this is a functional approach that doesn't mutate the original array:
def swap_elements(array)
# yields the array to the block
array.then do |first, *rest| # deconstruct the array
rest.reverse # swap the places of 2 & 3
.unshift(first) # put the first back in
end
end
Related
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 3 years ago.
Improve this question
I have 2 arrays like and , I want to generate a new array with 2 elements like pID and cNo. pID is getting from the first array and the cNO is from the second array. How to merge these 2 arrays like
newarr= { 0: pID:970989, cID:'dfds'
1: pID:970995, cID:'fgd',
2: pID:971006, cID:'t765'}
Assuming your arrays are equal in length you can just loop over one of them and create a new array.
const newArray = pIDArray.map((pID, index) => ({ pID, CID: cIDArray[index] }));
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
What does it mean in MATLAB when I do:
array = array (1:number)
and what does it mean:
array = array(indexes_array)
and finally, what does it mean:
array = array(indexes_array,:)
Answers, according to MATLAB docs:
1)
array = array (1:number)
The colon notation in MATLAB provides an easy way to extract a range of elements from v:
v(3:7) % Extract the third through the seventh elements
ans =
9 4 2 11 7
2)
array = array(indexes_array)
array is reorganized according to indexes_array order, assuming that indexes_array is composed of indexes.
3)
array = array(indexes_array,:)
just the same as number 1), array is reorganized according to all the rows of indexes_array, ignoring the columns.
References:
https://www.mathworks.com/help/matlab/math/array-indexing.html
https://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 5 years ago.
Improve this question
Given an array of letters:
#recipients_list = ["Mum and Dad", "my best friend", "Brother"]
# > Here are the letters available to ship, select one by number
# > 1. Mum and Dad
# > 2. My best friend
# > 3. Brother
As a user I then enter 3 (notice that Brother in this case is the recipient name). My code:
x = #recipient_list.each_with_index do |value, i|
index_start = i + 1
puts "#{index_start}.#{value}"
end
input = gets.chomp.to_i
puts x.at(input)
How to get brother value from array when user press 3? Anyone can help?
You have to use puts x.at(input - 1) because of Ruby arrays' indexing starts with 0
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I have 2 arrays of strings as under. I want to compare them and execute some code if these arrays are not equal-
current_instances = ["170601_7711", "170601_8811"]
app_instances = ["170602_7711", "170602_8811"]
How can I compare them in ruby?
x = ["alpha1", "beta1"]
y = ["alpha2", "beta2"]
Check if all elements are the same
x == y #=> false
Compare each element
Compare each string at some index i, assuming both arrays are the same size. Then apply some code to the matches.
x.zip(y) #=> [["alpha1", "alpha2"], ["beta1", "beta2"]]
x.zip(y).map {|a,b| a == b ? 'do this' : 'else do this' }
#=> ["else do this", "else do this"]
Perhaps you can do an array difference with the - operator and execute your code if the difference is zero
arr_diff = current_instances - app_instances
This is the simplest solution I could think of :)
Check my solution and let me know how it goes
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
Lets say, we have the following two-dimensional array in Matlab:
A=[0 451
0 446
0 543
.....]
etc. I want to create another, one-dimensional array, that will do this:
For example, lets call the 1-D array B, B(1) will "show" to [0 451]. B(2) will "show" to [0 446], B(3) will "show" to [0 543] and so on.I hope that my desired result is pretty clear to anyone who could give me a bit help.
Two ways:
a=1:10
split_a1=(reshape(a,2,[])).';
Access split_a1 as split_a1(1,:),...,split_a1(5,:);.
split_a2=mat2cell(a,1,2*ones(1,numel(a)/2));
Access split_a2 as split_a2{1},...,split_a2{5};.
Well, what you have just set is impossible, you are mixing the arrays and the Dimensions.
As you have explained it, B is 2-D, and A is 1-D. You can do what you want by doing this:
j=0;
i=1;
while i<=size(A,2)/2;
j=j+1;
B(i,1)=A(j);
j=j+1;
B(i,2)=A(j);
i=i+1;
end