Replace a Zero with previous value store it [duplicate] - matlab

This question already has answers here:
Replace all zeros in vector by previous non-zero value
(6 answers)
Closed 3 years ago.
I'm trying to replace a zero value with the previous value while storing it in a variable. I imported the csv file as a Numeric Matrix.

I think your code should be something like below:
Stocks = Stock_Market;
for i = 2:length(Stocks(:,1))
if Stocks(i,1)==0
Stocks(i,1) = Stocks(i-1,1);
end
end

Related

why ncread function in matlab reduce floating point numbers count? [duplicate]

This question already has answers here:
How to store more than 4 decimal places in an array in MATLAB
(2 answers)
Closed 5 years ago.
i have code below in matlab:
converted = ncread(this_file, 'U');
disp(converted(50,10,20));
and the result is:
-0.1561
actually the number is -0.15617890 but this code changes the the number of floating numbers. why?
MATLAB displays only 4 digits after the decimal point by default. You can use format to display more digits:
format long
converted = ncread(this_file, 'U');
disp(converted(50,10,20));

Extract data and rename each iteration in loop [duplicate]

This question already has answers here:
How to automatically create variables which are column extracts from a matrix
(4 answers)
MATLAB - Need to split a Matrix into column variables with names sourced from another matrix?
(3 answers)
Closed 5 years ago.
I have created a color map:
Color map=jet(40)
From this I want to use a loop to extract each row of the colormap as 40 separate matrix (vector) with the title rgb1-rgb40. How to do this?
You can use eval to execute a dynamically created string as follow:
map=jet(40)
for i=1:size(map, 1)
eval(['rgb', num2str(i), '= map(', num2str(i), ', :)']);
end
Warning: Note that converting your matrix to 40 vectors in this way is probably not the most elegant solution for what you try to obtain. For more information, see Alternatives to the eval Function.

How to access matrix alphabetically [duplicate]

This question already has answers here:
How to compute word scores in Scrabble using MATLAB
(2 answers)
Closed 7 years ago.
I'm new to matlab ... I simply would like to convert letter to numbers such that:
A=1
B=2
C=3
all my numbers are capital case. Off course, I could define constant for each char, but is there a shorter way?
Thanks!
See the char function. You can give it an integer argument.
http://www.mathworks.com/help/matlab/ref/char.html

have to create a matlab counter [duplicate]

This question already has an answer here:
Create a "counter" on matlab from 0:limit-1. The length of counter is not determined in the program
(1 answer)
Closed 9 years ago.
Q- Create a "counter" from 0:limit-1 (for example if you choose 3 it will display 0,1,2). The length of counter is not determined in the program and it should be determined when it is being run and the inputs can differ from each other
not really sure what you mean...but
for i = 0:limit-1
disp(i)
end
will display 0,1,2 ... limit-1

How to set a number in a couple of cells within a cell array [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Assign a value to multiple cells in matlab
I am trying to enter a number, lets say 3, into all the cells in column 2 that are empty.
Like this:
emptyList = cellfun(#isempty,anscell)
anscell{emptyList(:,2),2}=3
but I get this message that
The right hand side of this assignment has too few values to satisfy the left hand side.
Can I overcome it without loops and creating sum and ones functions?
Is this what you need?
anscell = cell(3,2)
emptyList = cellfun(#isempty,anscell)
anscell(emptyList(:,2),2)={3}
Does this do what you want to do?
[anscell{emptyList(:,2),2}] = deal(3)