discrte to softmax : Attempt to grow array along ambiguous dimension

2 views (last 30 days)
Hello
Im trying to run below function but constantly getting error
Attempt to grow array along ambiguous dimension.
Error in discrete2softmax (line 5)
s_m([1:sNum] + (inp'-1)*sNum) = 1;%problem
I know its caused becouse target is larger then array but please help how i should change my code to make it work
function s_m = discrete2softmax(inp,nmax)
% Convert discrete data into softmax
sNum = size(inp,1);
s_m = zeros(sNum,nmax);
s_m([1:sNum] + (inp'-1)*sNum) = 1;%problem
end
  4 Comments
Tomasz Kaczmarski
Tomasz Kaczmarski on 21 Feb 2020
Edited: Tomasz Kaczmarski on 21 Feb 2020
thanks changing brackets improved code but i still got error
after more debbugging i think i know where my problem is
if s_m got mix of 0 and 1 it work well if i load 0 ( as on screen) only it fails
how to change function to move forward without failing if s_m got zeros only

Sign in to comment.

Accepted Answer

Matt J
Matt J on 19 Feb 2020
Edited: Matt J on 19 Feb 2020
I know its caused becouse target is larger then array but please help how i should change my code to make it work
Did you intend to add data at locations outside the bounds of s_m? If so, you would have to do so with 2D subscript indexing, rather than with a 1D linear index, e.g.,
>> s_m=rand(2)
s_m =
0.7088 0.9239
0.1146 0.7881
>> s_m(3,4)=1
s_m =
0.7088 0.9239 0 0
0.1146 0.7881 0 0
0 0 0 1.0000

More Answers (0)

Tags

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!