How to solve Error using repmat

4 visualizaciones (últimos 30 días)
Prabha Kumaresan
Prabha Kumaresan el 18 de Dic. de 2017
Comentada: Stephen23 el 18 de Dic. de 2017
If C =
0 0 0.0244 0 0.0260 0 0.0136 0 0 0
0.1738 0 0 0 0 0.0240 0 0.0629 0 0
0 0 0 0 0 0 0 0 0 0
0 0.0662 0 0.0890 0 0 0 0 0.0181 0.0472
B = reshape(repmat(max(reshape(C,2,[])),C,1),size(C))
I am getting
Error using repmat
Replication factors must be a row vector of integers or integer scalars.
How to overcome it.
  3 comentarios
Guillaume
Guillaume el 18 de Dic. de 2017
@Prabha
  • your profile show that you've asked 94 questions and accepted 0 answers, which would mean you that either you never got a correct answer, a worrying fact, or that you don't care about rewarding people who help you, in which case why should we bother?
  • Looking at a few of your questions they barely include enough information to be able to answer you. There's no explanation of what you're trying to do, just some random code that doesn't work. Spend more time on your question
  • More importantly, spend more time understanding the answers you've given and spend more time learning matlab. Read the documentation of each function used in the answers you're given and understand how the answer works.
Prabha Kumaresan
Prabha Kumaresan el 18 de Dic. de 2017
since i am unable to get the result i am asking again.

Iniciar sesión para comentar.

Respuestas (2)

Walter Roberson
Walter Roberson el 18 de Dic. de 2017
Your repmat call is
repmat(max(reshape(C,2,[])),C,1)
The part
max(reshape(C,2,[]))
tells MATLAB to start by reshape C to 2 rows, then find the maximum per column, giving a row vector (of 20 elements).
Then the repmat( max(...), C, 1)
tells it to repeat the vector C times along the rows. But C is floating point numbers.
Considering that you reshaped C to 2 x N, and took the max along columns to get 1 x N, in order for the reshape() you are about to do after this to work, you would need to repeat by 2:
repmat(max(reshape(C,2,[])),2,1)
  8 comentarios
Prabha Kumaresan
Prabha Kumaresan el 18 de Dic. de 2017
the code which u gave worked separately for an array.but when i tried to implement on my code it doesnt work.
Stephen23
Stephen23 el 18 de Dic. de 2017
" i tried to implement on my code it doesnt work"
It worked when I tried it using the data that you provided.

Iniciar sesión para comentar.


Stephen23
Stephen23 el 18 de Dic. de 2017
Editada: Stephen23 el 18 de Dic. de 2017
>> B = reshape(repmat(max(reshape(C,2,[])),2,1),size(C))
ans =
0.17380 0.00000 0.02440 0.00000 0.02600 0.02400 0.01360 0.06290 0.00000 0.00000
0.17380 0.00000 0.02440 0.00000 0.02600 0.02400 0.01360 0.06290 0.00000 0.00000
0.00000 0.06620 0.00000 0.08900 0.00000 0.00000 0.00000 0.00000 0.01810 0.04720
0.00000 0.06620 0.00000 0.08900 0.00000 0.00000 0.00000 0.00000 0.01810 0.04720
  1 comentario
Stephen23
Stephen23 el 18 de Dic. de 2017
@Prabha Kumaresan: note that this is exactly the same as my answer to your earlier question, whose code you copied and changed (without any obvious reason).
Remember that we are volunteers here and you can show your appreciation of our time that we volunteer to help you by accepting the answer that best resolves your question.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by