What's going wrong is in your logicals. For example, the first logical on the first loop will do
Which will return [1 1 1 1 1 0].
The way MATLAB interprets this is FALSE. Because if you have one thing false, it has failed. I suspect you're really wanting to say if the whole row of the matrix is zeros mark v_d(j) as 0. While in that case, it would work programmatically, it is probably clearer to use the all() command anyway. If nothing else, because it is clear what you're meaning to another programmer.
Next, we would get to this
or for the first loop,
elseif [0 0 0 0 0 99] == 99
Here, the MATLAB will evaluate this as [0 0 0 0 0 1], or FALSE. What you're really trying to ask here is if there's a 99 in the the row. any() will be a quick solve here. Such as:
elseif any(v_s(j,:) == 99)
Which is asking if ANY of the values in that row are 99.
I am unsure why you're reversing the number on the final else loop, but again your logical is going to turn an array not a single value. If you follow the other conventions, you shouldn't need another logical and can just go with else, and then proceed to find where the 1 is in that row.