Assign random number in column if negative/positive

Hello everyone,
I have a simple Matlab table with the last column having positive and negative numbers. If the values are negative I want to create an additional table and assign random numbers from 4 to 14 and the rest with "0". If the values are positive I want to assign random numbers from 4 to 14 and the rest "0 " in an additional column. see the attached picture

 Risposta accettata

val = [1 5 -3 4 8 -6]' ;
C1 = zeros(size(val)) ;
idx = val<0 ;
C1(idx) = randsample(4:14,nnz(idx)) ;
T = table(val,C1)

3 Commenti

Hey KSSV, thank you for your help. Unfortunately, the code doesn't work when I change idx = val>0. Do you know why?
It works very much.....show me the code you tried.
load energy
whos -file energy
T = table(hour, demand,generation);
T.diffrow = demand - generation;
% insert column with random buy price
T.buydprice = zeros(size(generation)) ;
idx = T.diffrow<0 ;
T.buydprice(idx) = randsample(4:14,nnz(idx)) ;
% insert column with random sell price
T.sellprice = zeros(size(generation)) ;
idx = T.diffrow>0 ;
T.sellprice(idx) = randsample(4:14,nnz(idx)) ;
disp(T)
I attached the .mat file. Thank you

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Random Number Generation in Centro assistenza e File Exchange

Richiesto:

il 1 Ago 2018

Commentato:

il 1 Ago 2018

Community Treasure Hunt

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

Start Hunting!

Translated by