how can i move a certain windw of a 3D array to another 3D array?

1 回表示 (過去 30 日間)
Sarah
Sarah 2018 年 10 月 26 日
コメント済み: Sarah 2018 年 11 月 13 日
Dear All,
my goal is to prompt user input of 2 pixels making a window of the 3D matrix to perform calculations only on the pixels of that window.
so user inputs row1, row2, col1, col2 and i use that to accumulate the pixel values from the 3D matrix to my window_cube
itried the following line
window_cube(:, :, :)= matrix3D(row1:row2, col1:col2, 1:Frames)
user will input: row1, row2, col1, col2, Frames.
However, the error I am facing is that the window_cube ends up copying the same frame of the 3D cube into every frame of the window_cube. So all frames of window_cube are now identical.
can someone explain how it is possible to gather the data of a certain window from a 3D matrix into a smaller 3D matrix? ?
  5 件のコメント
Sarah
Sarah 2018 年 10 月 31 日
編集済み: Sarah 2018 年 10 月 31 日
Window cube size is based on user input. User inputs the indicated values in my question and accordingly that part is cut out of the original 3D array and moved to the new 3D array window_cube. This loop is for moving the data from the original cube to the window_cube.
Stephen23
Stephen23 2018 年 10 月 31 日
"I thought colon is one way of indexing to enter array elements,..."
Sure it is, but the colon means "all of this dimension", which apparently does not suit what you are trying to do. But you did not describe how exactly that data should be allocated to window_cube: do you want to allocate the RHS subarray into a subarray of window_cube, or do you want window_cube to be RHS subarray itself, nothing more?

サインインしてコメントする。

回答 (1 件)

Stephen23
Stephen23 2018 年 10 月 31 日
編集済み: Stephen23 2018 年 10 月 31 日
I suspect that the indexing is a red herring, and you just want this:
window_cube = matrix3D(row1:row2, col1:col2, 1:Frames)
  3 件のコメント
Stephen23
Stephen23 2018 年 10 月 31 日
"...the problem is that all frames of the cube have identical data"
Why is this a problem? Does this reflect the data in matrix3D or not? What do you expect to get? Please show a minimum working example, complete with inputs and expected outputs. You can optionally upload data by clicking the paperclip button.
Sarah
Sarah 2018 年 11 月 13 日
it is solved, I found out that my original imsge cube was accomulating the same data in all frames, i just fixed the loop for that and it worked well.
thank you :)

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by